C#/정규 표현식
C#에서 정규 표현식을 사용하여 문자열을 분할하는 방법 (Regex.Split 메서드)
밍투민
2021. 9. 3. 08:47
“Sword, Spear ,Bow , Shield,Gun”
다음과 같은 문자열에서 "Sword"와 같은 단어를 추출하고 싶을 때
단어 사이에는 콤마(,)로 구분돼 있는데 콤마 앞뒤에 공백이 존재할 가능성이 있다.
String 클래스에 있는 Split 메서드로 처리한다면
var text = “Sword, Spear ,Bow , Shield,Gun”;
string[] words = text.Split(',');
단어 앞뒤에 있는 공백이 처리가 안되고 그대로 문자열에 대입이된다.
Regex 클래스에 있는 Split 메서드를 이용하면 정규 표현식을 통해 일치한 부분으로 구분할 수 있으므로 String 클래스에 있는 Split 메서드보다 유연하게 처리할 수 있다.
var text = “Sword, Spear ,Bow , Shield,Gun”;
var pattern = @”\s*,\s*”;
string[] substrings = Regex.Split(text, pattern);
@”\s*,\s*”는 ‘,’ (앞 뒤 공백 없음) ‘ ,’ (앞 공백) ‘, ‘ (뒤 공백) 같은 문자열과 일치하여 공백까지 처리하여 구분할 수 있게된다.