[C# 문법] C# 정규표현식 - 일치한 부분 문자열 찾기
- C#/C# 문법
- 2021. 9. 13. 19:56
소개
- 안녕하세요. 오늘은 C# 문법에서 정규 표현식에 대해서 알려 드리려고 합니다.
- 그 중에서도 정규 표현식을 이용해서 일치한 부분 문자열의 일부분만 필터하는 방법에 대해서 보여 드리려고 합니다..
안녕하세요. 저의 이름은 <범범조조> 입니다. 만나서 <반갑습니다.>
라는 문구가 있습니다.- 여기서
<>
로 묶인 "범범조조", "반갑습니다." 문자열만 정규 표현식을 이용하여 꺼내는 방법을 보여 드리도록 하겠습니다.
예제코드
using System;
using System.Text.RegularExpressions;
using System.Xml.Linq;
namespace ConsoleApp7
{
static class Program
{
static void Main(string[] args)
{
var text = "안녕하세요. 저의 이름은 <범범조조> 입니다. 만나서 <반갑습니다.>";
var matches = Regex.Matches(text, @"<([^<>]+)>");
foreach (Match item in matches)
{
Console.WriteLine($"{item.Groups[0]}, {item.Groups[1]}");
}
}
}
}
- 위 코드에서 사용된 정규 표현식인
@"<([^<>]+)>"
표현식에 대해서 설명을 드리도록 하겠습니다.@"<.+>"
: 이 정규식은 최대한 긴 문자열과 일치시키려고 하기 때문에<범범조조> 입니다. 만나서<반갑습니다.>
라는 문자열이 일치하게 됩니다. 임의 문자열을 나타내는 점(.)이<
이나>
과도 일치하게 되기 때문입니다.@"<[^<>]+>"
:<
이나>
와 일치하지 않도록 점(.) 이 있는 부분은 <> 이외의 것을 나타내는[^<>]
로 바꾸었습니다. 이렇게 하면<범범조조>
라는 문자열과 일치하게 됩니다.@"<([^<>]+)>"
: 최종적으로 구하려는 문자열을 괄호() 로 묶어서 그룹화하면 일치한 문자열 안에서 () 안에 있는 문자열만을 꺼낼 수 있습니다.
실행 결과
<범범조조>, 범범조조
<반갑습니다.>, 반갑습니다.
- 위와 같이
<>
안에 있는 데이터를 제대로 필터해서 가져온 것을 확인할 수 있습니다.
728x90
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] ObservableCollection 정렬하기 (0) | 2021.11.01 |
---|---|
[C# 문법] C# LINQ Select 구문 메서드 방식으로 사용하기 (0) | 2021.10.18 |
[C# 문법] C# 정규표현식 - 일치하는 모든 문자열 찾기 (0) | 2021.09.11 |
[C# 문법] C# 정규표현식 - 첫번째 문자열 찾기 (0) | 2021.09.11 |
[C# 문법] C# 정규표현식 - 문자열 일치 여부 확인 (0) | 2021.09.11 |
이 글을 공유하기