โ ์ ๊ท ํํ์ (Regular Expression)
์ ๊ท ํํ์์ ๋ฌธ์์ด ํจํด์ ๋งค์นญ, ๊ฒ์, ์นํ, ๋ถ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ด๋ค. ์ ๊ท ํํ์์ System.Text.RegularExpressions ๋ค์์คํ์ด์ค์ Regex ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ๋๋ค.
โ ๊ธฐ๋ณธ ๊ฐ๋
์ ๊ท ํํ์์ ํน๋ณํ ์๋ฏธ๋ฅผ ๊ฐ์ง ๋ฌธ์(๋ฉํ๋ฌธ์)๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ํจํด์ ์ ์ํ๋ค. ์ด ํจํด์ ๋ฌธ์์ด์ ํน์ ๋ถ๋ถ๊ณผ ์ผ์น์ํค๊ฑฐ๋, ํน์ ๊ท์น์ ๋ง๋ ๋ฌธ์์ด์ ์ฐพ์ ๋ ์ฌ์ฉ๋๋ค.
โ Regex ํด๋์ค
Regex ํด๋์ค๋ ์ ๊ท ํํ์์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด ์์
์ ์ํํ ์ ์๋ ๋ค์ํ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค.
- Regex.IsMatch(string input, string pattern): ๋ฌธ์์ด์ด ์ฃผ์ด์ง ํจํด๊ณผ ์ผ์นํ๋์ง ํ์ธํ๋ค.
- Regex.Match(string input, string pattern): ์ฃผ์ด์ง ํจํด๊ณผ ์ผ์นํ๋ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ ๋ฌธ์์ด์ ๋ฐํํ๋ค.
- Regex.Matches(string input, string pattern): ์ฃผ์ด์ง ํจํด๊ณผ ์ผ์นํ๋ ๋ชจ๋ ๋ถ๋ถ ๋ฌธ์์ด์ ๋ฐํํ๋ค.
- Regex.Replace(string input, string pattern, string replacement): ํจํด๊ณผ ์ผ์นํ๋ ๋ชจ๋ ๋ถ๋ถ ๋ฌธ์์ด์ ๋์ฒด ๋ฌธ์์ด๋ก ๋ฐ๊พผ๋ค.
- Regex.Split(string input, string pattern): ํจํด์ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ๋ถ๋ฆฌํ๋ค.
โ ๋ฉํ๋ฌธ์
| ๋ฉํ๋ฌธ์ | ์ค๋ช |
| . | ์์์ ํ ๋ฌธ์ (์ค๋ฐ๊ฟ ์ ์ธ) |
| ^ | ๋ฌธ์์ด์ ์์ |
| $ | ๋ฌธ์์ด์ ๋ |
| * | ์์ ๋ฌธ์๊ฐ ์๊ฑฐ๋ 1๋ฒ ์ด์ ๋ฐ๋ณต |
| + | ์์ ๋ฌธ์๊ฐ 1๋ฒ ์ด์ ๋ฐ๋ณต |
| ? | ์์ ๋ฌธ์๊ฐ 0๋ฒ ๋๋ 1๋ฒ ๋ํ๋จ |
| {n} | ์์ ๋ฌธ์๊ฐ ์ ํํ n๋ฒ ๋ํ๋จ |
| {n,} | ์์ ๋ฌธ์๊ฐ n๋ฒ ์ด์ ๋ํ๋จ |
| {n,m} | ์์ ๋ฌธ์๊ฐ n๋ฒ ์ด์ m๋ฒ ์ดํ ๋ํ๋จ |
| [ ] | ๋ฌธ์ ํด๋์ค. ๋๊ดํธ ์์ ๋ฌธ์ ์ค ํ๋์ ์ผ์นํจ |
| \ | ๋ฉํ๋ฌธ์๋ฅผ ์ผ๋ฐ ๋ฌธ์๋ก ์ทจ๊ธํ๋๋ก ์ด์ค์ผ์ดํ |
| \d | ์ซ์์ ์ผ์น ([0-9]) |
| \D | ์ซ์๊ฐ ์๋ ๋ฌธ์์ ์ผ์น ([^0-9]) |
| \w | ๋จ์ด์ ์ผ์น ([a-zA-Z0-9_]) |
| \W | ๋จ์ด๊ฐ ์๋ ๋ฌธ์์ ์ผ์น ([^a-zA-Z0-9_]) |
| \s | ๊ณต๋ฐฑ ๋ฌธ์์ ์ผ์น (๊ณต๋ฐฑ, ํญ, ์ค๋ฐ๊ฟ ๋ฑ) |
| \S | ๊ณต๋ฐฑ ๋ฌธ์๊ฐ ์๋ ๋ฌธ์์ ์ผ์น |
| ( ) | ๊ทธ๋ฃนํ. ํจํด์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด ์บก์ฒ |
โ ์ฌ์ฉ ์์
- ์ ํจ์ฑ ๊ฒ์ฌ
using System.Text.RegularExpressions;
string email = "example@example.com";
string pattern = @"^[^@\s]+@[^@\s]+\.[^@\s]+$";
// ํจํด๊ณผ ์ผ์นํ๋์ง ๊ฒ์ฌ
bool isValid = Regex.IsMatch(email, pattern);
- ํน์ ๋จ์ด ๊ฒ์ถ
string text = "Hello, world!";
string pattern = @"world";
Match match = Regex.Match(text, pattern);
if (match.Success)
{
Console.WriteLine($"Found '{match.Value}' at position {match.Index}");
}
* ๋ณต์กํ ํจํด์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์๋ค.
'๐ C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| IComparable, IComparer ์ธํฐํ์ด์ค (0) | 2024.08.19 |
|---|---|
| object ํ์ , ๋ฐ์ฑ, ์ธ๋ฐ์ฑ (0) | 2024.08.19 |
| ํ์ฅ ๋ฉ์๋ (Extension Method) (0) | 2024.08.14 |
| ๋ฒ์ ํํ์ (Range Expression) (0) | 2024.08.08 |
| var ํค์๋ (0) | 2024.07.28 |