티스토리 뷰
예제1> 주어진 문장에서 e로 시작하는 단어를 찾아서 출력해 주는 프로그램을 만들어 주세요
ex)
input:
I'm working at ecount. I'm excellent employee. I expect to promote to upper position.
output:
ecount
excellent
employee
expect
잘 짰나요? 쉽지 않죠?
.NET 같은 프레임워크를 사용하더라도 생각보다 코딩이 간단하지 않아요
제가 C# .NET Core 로 짠 예제입니다
예제1 예시>
var words = sampleText.Split(' ', '.');
foreach(var word in words) {
if (word.StartsWith("e")) {
Console.WriteLine(word);
}
}
이마저도 Split함수와 StartsWith함수의 도움을 받았죠
만약 공백이나 마침표(.) 이외의 구분자가 있다면 제대로 동작하지도 않겠네요
이렇게 문장에서 특정 패턴의 문자열을 찾아내는 것은 생각보다 쉽지 않아 보입니다
정말 항상 이렇게 문자열을 검색해야 할까요?
생각으로는 사실 엄청 간단한건데 더 스마트하게 문자열을 찾고 조작할 수 없을까요?
그래서 나온 것이 정규 표현식 (Regular Expression) 입니다
정규 표현식 줄여서 정규식은 문자열의 검색 및 조작을 매우 쉽게 해주는 언어입니다
한번 예제1을 정규식으로 다시 짜볼까요?
예제1 정규식을 사용한 예시>
var matches = Regex.Matches(sampleText, @"\be\w+\b");
foreach(Match match in matches) {
Console.WriteLine(match.Value);
}
어떤가요? 저게 뭔지는 모르겠지만 간단해졌죠?
실제 문자열을 검색하는 코딩은 단 한줄입니다
여기서 바로
\be\w+\b -> 이게 정규 표현식입니다
외계어같이 생긴 이 표현식이
[e로 시작하는 단어] 라는 인간의 생각을
컴퓨터가 이해할 수 있도록 알려주는 언어입니다
정규 표현식의 정확한 정의를 한번 정리해보죠
정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다
'Dev 일반 > 정규식' 카테고리의 다른 글
[정규식] 6. 반복 찾기 (0) | 2019.05.09 |
---|---|
[정규식] 5. 메타 문자 사용하기 (0) | 2019.05.09 |
[정규식] 4. 문자 집합으로 찾기 (0) | 2019.05.09 |
[정규식] 3. 문자 하나 찾기 (0) | 2019.05.09 |
[정규식] 2. 정규식을 언제 사용할까요? (0) | 2019.05.09 |