[C# 문법] C# 정규표현식 - 일치하는 모든 문자열 찾기
- C#/C# 문법
- 2021. 9. 11. 19:36
소개
- 안녕하세요. 오늘은 C# 문법에서 정규 표현식에 대해서 알려 드리려고 합니다.
- 그 중에서도 정규 표현식을 이용해서 일치하는 문자열을 모두 찾는 방법에 대해서 알려 드리려고 합니다.
- 정규 표현식을 사용하지 않고도 하드코딩을 통해서 문자열을 찾을 수 있겠지만, 정규 표현식을 사용하게 되면 코드 한줄로 원하는 결과값을 빠르게 얻을 수 있기 때문에 한번씩을 따라 해보시면서 정규 표현식에 친숙해지는 것을 추천 드리도록 하겠습니다.
- 정규 표현식에서 일치하는 문자열을 모두 찾는 방법은 Regex 클래스에 있는 Matches 메서드를 사용하면 됩니다.
- 어떻게 사용하는지에 대해서 예제 코드를 통해서 보여 드리도록 하겠습니다.
예제코드
using System;
using System.Text.RegularExpressions;
namespace ConsoleApp7
{
static class Program
{
static void Main(string[] args)
{
var text = "Hello, 안녕하세요. 내 이름은 범범조조 입니다. beombeomjojo, hello BeomBeomJoJo";
var matches = Regex.Matches(text, @"[h|H]ello");
// foreach 구문에서 var 형이 아니라 Match 형이라고 반드시 명시해야 합니다.
foreach (Match item in matches)
{
Console.WriteLine($"Index = {item.Index} Length = {item.Length} Value = {item.Value}");
}
Console.WriteLine();
Console.WriteLine();
// NextMatch() 메서드를 이용할 수 도 있습니다.
var text2 = "Hello, 안녕하세요. 내 이름은 범범조조 입니다. beombeomjojo, hello BeomBeomJoJo";
Match match = Regex.Match(text, @"[h|H]ello");
while(match.Success)
{
Console.WriteLine($"Index = {match.Index} Length = {match.Length} Value = {match.Value}");
match = match.NextMatch();
}
}
}
}
실행 결과
Index = 0 Length = 5 Value = Hello
Index = 44 Length = 5 Value = hello
Index = 0 Length = 5 Value = Hello
Index = 44 Length = 5 Value = hello
- 위와 같이 Matches 메서드 혹은 Match 메서드에서 제공하는 NextMatch() 메서드를 통해서 정규 표현식을 통해서 일치하는 모든 문자열을 구할 수 있습니다.
- Matches 메서드의 표현 방법을 LINQ로도 표현할 수 있습니다.
Matches 메서드 LINQ 예제코드
using System;
using System.Linq;
using System.Text.RegularExpressions;
namespace ConsoleApp7
{
static class Program
{
static void Main(string[] args)
{
var text = "Hello, 안녕하세요. 내 이름은 범범조조 입니다. beombeomjojo, hello BeomBeomJoJo";
var matches = Regex.Matches(text, @"[h|H]ello")
.Cast<Match>()
.OrderBy(x => x.Length);
foreach (Match item in matches)
{
Console.WriteLine($"Index : {item.Index} Length : {item.Length} Value : {item.Value}");
}
}
}
}
실행 결과
Index : 0 Length : 5 Value : Hello
Index : 44 Length : 5 Value : hello
- 위와 같이 LINQ 구문을 이용해서 Matches 메서드를 사용할 수 있습니다.
728x90
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] C# LINQ Select 구문 메서드 방식으로 사용하기 (0) | 2021.10.18 |
---|---|
[C# 문법] C# 정규표현식 - 일치한 부분 문자열 찾기 (0) | 2021.09.13 |
[C# 문법] C# 정규표현식 - 첫번째 문자열 찾기 (0) | 2021.09.11 |
[C# 문법] C# 정규표현식 - 문자열 일치 여부 확인 (0) | 2021.09.11 |
[C# 문법] C# 정규표현식 - 문자열 체크하기 (0) | 2021.09.10 |
이 글을 공유하기