[C# 정규표현식] 정규표현식 문자가 없는 경우나 하나 이상 연속하는 문자 찾기
- C#/정규표현식
- 2021. 12. 5. 18:49
참조
- 손에 잡히는 정규표현식
소개
- 안녕하세요. 오늘은 정규표현식에서 문자가 없는 경우나 하나 이상의 연속하는 문자를 찾는 방법에 대해서 학습해 보려고 합니다.
- 더하기(+)는 하나 이상 연속된 문자를 찾습니다.
- 문자가 없는 경우는 아예 찾지 못하고 최소한 하나는 일치해야 합니다.
- 하지만 있을 수도 있고, 없을 수도 있는데 그럴떄는 메타 문자인 별표(*)를 사용하면 됩니다.
- 별표(*)는 더하기(+)와 거의 비슷하게 사용하는데, 문자나 집합 바로 뒤에 두면 찾고자 하는 문자나 집합이 없는 경우 또는 하나 이상 연속하는 경우에 일치합니다.
- 예를 들어 B.*Forta 패턴은 B Forta, B. Forta, Ben Forta 같은 조합과도 일치합니다.
- 예제 코드를 통해서 살펴보겠습니다.
예제 문
Hi, .Ben@forta.com is my email address.
예제 코드
using System;
using System.Text.RegularExpressions;
namespace interfaceTest
{
class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\Desktop\RegexTest.txt";
string textValue = System.IO.File.ReadAllText(path);
string pattern = @"\w+[\w.]*@[\w.]+\.\w+";
var matches = Regex.Matches(textValue.ToString(), pattern);
foreach (var match in matches)
{
Console.WriteLine($"{pattern} 패턴에 매칭된 데이터 {match}");
}
}
}
}
- \w+는 마침표(.)를 제외한 영숫마 모두와 모두 일치합니다.
- 우선 첫 문자가 유효하면, 그 다음에는 마침표(.)가 하나 나오거나 문자가 더 나올 수도 있습니다.
- 사실 이런 이메일 주소는 없을 수도 있습니다.
- [\w.]* 는 문자가 없는 경우를 포함해 여러 개의 영숫자 혹은 마침표(.)와 일치합니다.
실행 결과
\w+[\w.]*@[\w.]+\.\w+ 패턴에 매칭된 데이터 Ben@forta.com
- 정규표현식을
[\w.]+@[\w.]+\.\w+
이렇게 사용을 했다면 .Ben@forta.com 이 검색됩니다. - 하지만
\w+[\w.]*@[\w.]+\.\w+
이렇게 정규표현식을 사용하면 Ben@forta.com 이 검색됩니다.
728x90
'C# > 정규표현식' 카테고리의 다른 글
[C# 정규표현식] 정규 표현식 ? 물음표 (0) | 2022.01.04 |
---|---|
[C# 정규표현식] 정규표현식 이메일 찾기2 (0) | 2021.12.05 |
[C# 정규표현식] 정규표현식 - 이메일 주소 찾기 (0) | 2021.12.01 |
[C# 정규표현식] 영숫자 문자와 영숫자가 아닌 문자 찾기 (0) | 2021.11.23 |
[C# 정규표현식] 특정한 문자 형태와 일치시키기 (0) | 2021.11.23 |
이 글을 공유하기