정규 표현식 공백 문자 완벽 가이드
정규식에서 다양한 공백 문자를 매칭하고 처리하는 방법을 알아보세요.
기본 공백 문자 패턴
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 패턴을 사용하여 하나 이상의 연속된 공백을 하나의 공백으로 바꿀 수 있습니다.