C# – Regular Expressions
Regular Expressions adalah pola yang dapat dicocokkan dengan teks masukan. Framework .Net menyediakan mesin regular expressions yang memungkinkan pencocokkan tersebut. Pola terdiri dari satu atau lebih literal karakter, operator, atau konstruksi.
Constructs for Defining Regular Expressions
Ada berbagai kategori karakter, operator, dan konstruksi yang memungkinkan Anda menentukan reguler expressions:
- Character Escapes
- Character Classes
- Anchors
- Grouping Constructs
- Quantifiers
- Backreference Constructs
- Alternation Constructs
- Substitutions
- Miscellaneous Constructs
The Regex Class
Kelas Regex digunakan untuk mewakili regular expressions. Ini memiliki metode yang umum digunakan berikut :
Sr.No. | Methods & Description |
---|---|
1 | public bool IsMatch(string input) Menunjukkan apakah regular expression yang ditentukan dalam konstruktor Regex menemukan kecocokan dalam string input yang ditentukan. |
2 | public bool IsMatch(string input, int startat) Menunjukkan apakah regular expression yang ditentukan dalam konstruktor Regex menemukan kecocokan dalam string input yang ditentukan, dimulai dari posisi awal yang ditentukan dalam string. |
3 | public static bool IsMatch(string input, string pattern) Menunjukkan apakah regular expression yang ditentukan menemukan kecocokan dalam string masukan yang ditentukan. |
4 | public MatchCollection Matches(string input) Mencari string input yang ditentukan untuk semua kemunculan regular expression. |
5 | public string Replace(string input, string replacement) Dalam string input yang ditentukan, mengganti semua string yang cocok dengan pola regular expression dengan string pengganti yang ditentukan. |
6 | public string[] Split(string input) Memisahkan string input menjadi array substring pada posisi yang ditentukan oleh pola regular expression yang ditentukan dalam konstruktor Regex. |
Untuk daftar lengkap metode dan properti, silakan baca dokumentasi Microsoft di C#.
Contoh 1
Contoh berikut cocok dengan kata-kata yang dimulai dengan ‘S’ :
using System;
using System.Text.RegularExpressions;
namespace RegExApplication {
class Program {
private static void showMatch(string text, string expr) {
Console.WriteLine("The Expression: " + expr);
MatchCollection mc = Regex.Matches(text, expr);
foreach (Match m in mc) {
Console.WriteLine(m);
}
}
static void Main(string[] args) {
string str = "A Thousand Splendid Suns";
Console.WriteLine("Matching words that start with 'S': ");
showMatch(str, @"\bS\S*");
Console.ReadKey();
}
}
}
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut :
Matching words that start with 'S':
The Expression: \bS\S*
Splendid
Suns
Contoh 2
Contoh berikut cocok dengan kata-kata yang dimulai dengan ‘m’ dan diakhiri dengan ‘e’ :
using System;
using System.Text.RegularExpressions;
namespace RegExApplication {
class Program {
private static void showMatch(string text, string expr) {
Console.WriteLine("The Expression: " + expr);
MatchCollection mc = Regex.Matches(text, expr);
foreach (Match m in mc) {
Console.WriteLine(m);
}
}
static void Main(string[] args) {
string str = "make maze and manage to measure it";
Console.WriteLine("Matching words start with 'm' and ends with 'e':");
showMatch(str, @"\bm\S*e\b");
Console.ReadKey();
}
}
}
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut :
Matching words start with 'm' and ends with 'e':
The Expression: \bm\S*e\b
make
maze
manage
measure
Contoh 3
Contoh ini mereplace spasi yang berlebihan:
using System;
using System.Text.RegularExpressions;
namespace RegExApplication {
class Program {
static void Main(string[] args) {
string input = "Hello World ";
string pattern = "\\s+";
string replacement = " ";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
Console.WriteLine("Original String: {0}", input);
Console.WriteLine("Replacement String: {0}", result);
Console.ReadKey();
}
}
}
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut :
Original String: Hello World
Replacement String: Hello World