정규 표현식 공백 문자 완벽 가이드

정규식에서 다양한 공백 문자를 매칭하고 처리하는 방법을 알아보세요.

기본 공백 문자 패턴

1. 일반 공백 (스페이스)

/\s/

또는 / / - 일반 공백 문자(U+0020)를 매칭합니다.

2. 모든 공백 문자 (\s)

/\s/

공백, 탭, 줄바꿈 등 모든 공백 문자를 매칭합니다. 다음을 포함합니다: 공백, 탭(\t), 줄바꿈(\n), 캐리지 리턴(\r), 폼 피드(\f), 수직 탭(\v)

3. 하나 이상의 공백

/\s+/

하나 이상의 연속된 공백 문자를 매칭합니다.

4. 0개 이상의 공백

/\s*/

공백이 있을 수도 있고 없을 수도 있는 경우를 매칭합니다.

특수 공백 문자 패턴

1. 전각 공백 (U+3000)

/\u3000/

한자/한글과 같은 너비의 전각 공백을 매칭합니다.

2. 줄바꿈 방지 공백 (U+00A0)

/\u00A0/

HTML의  와 같은 줄바꿈 방지 공백을 매칭합니다.

3. 너비 없는 공백 (U+200B)

/\u200B/

보이지 않는 너비 없는 공백을 매칭합니다.

4. Em 스페이스 (U+2003)

/\u2003/

Em 단위와 같은 너비의 공백을 매칭합니다.

5. 여러 특수 공백 동시 매칭

/[\u00A0\u200B\u3000]/

여러 특수 공백 문자 중 하나를 매칭합니다.

실용 예제

JavaScript 예제

공백 제거:

// 모든 공백 제거
const text = "안녕  하세요";
const result = text.replace(/\s/g, "");
console.log(result); // "안녕하세요"

// 앞뒤 공백만 제거
const trimmed = text.replace(/^\s+|\s+$/g, "");
console.log(trimmed); // "안녕  하세요"

// 여러 공백을 하나로
const normalized = text.replace(/\s+/g, " ");
console.log(normalized); // "안녕 하세요"

특수 공백 제거:

// 전각 공백 제거
const text = "안녕 하세요";
const result = text.replace(/\u3000/g, "");
console.log(result); // "안녕하세요"

// 모든 종류의 공백 제거
const allSpaces = text.replace(/[\s\u00A0\u200B\u3000]/g, "");
console.log(allSpaces);

Python 예제

import re

# 모든 공백 제거
text = "안녕  하세요"
result = re.sub(r'\s', '', text)
print(result)  # "안녕하세요"

# 앞뒤 공백 제거
trimmed = re.sub(r'^\s+|\s+$', '', text)
print(trimmed)  # "안녕  하세요"

# 여러 공백을 하나로
normalized = re.sub(r'\s+', ' ', text)
print(normalized)  # "안녕 하세요"

# 전각 공백 제거
text2 = "안녕 하세요"
result2 = re.sub(r'\u3000', '', text2)
print(result2)  # "안녕하세요"

Java 예제

import java.util.regex.Pattern;
import java.util.regex.Matcher;

String text = "안녕  하세요";

// 모든 공백 제거
String result = text.replaceAll("\\s", "");
System.out.println(result); // "안녕하세요"

// 앞뒤 공백 제거
String trimmed = text.replaceAll("^\\s+|\\s+$", "");
System.out.println(trimmed);

// 여러 공백을 하나로
String normalized = text.replaceAll("\\s+", " ");
System.out.println(normalized); // "안녕 하세요"

공백 문자 패턴 참조표

패턴설명Unicode
/\s/모든 공백 문자다양함
/ /일반 공백U+0020
/\t/탭 문자U+0009
/\n/줄바꿈U+000A
/\u00A0/줄바꿈 방지 공백U+00A0
/\u200B/너비 없는 공백U+200B
/\u3000/전각 공백U+3000

자주 묻는 질문 (FAQ)

Q: \s는 어떤 공백 문자를 매칭하나요?

A: \s는 공백, 탭, 줄바꿈, 캐리지 리턴, 폼 피드, 수직 탭을 포함한 모든 공백 문자를 매칭합니다. 하지만 전각 공백(U+3000)이나 줄바꿈 방지 공백(U+00A0) 같은 특수 공백은 포함하지 않을 수 있습니다.

Q: 전각 공백을 제거하려면?

A: /\u3000/g 패턴을 사용하거나,/[\s\u3000]/g로 일반 공백과 함께 제거할 수 있습니다.

Q: 여러 공백을 하나로 만들려면?

A: /\s+/g 패턴을 사용하여 하나 이상의 연속된 공백을 하나의 공백으로 바꿀 수 있습니다.