C # - Normal İfadeler
Bir regular expressionbir giriş metniyle eşleştirilebilecek bir kalıptır. .Net çerçevesi, bu tür bir eşleşmeye izin veren normal bir ifade motoru sağlar. Bir kalıp, bir veya daha fazla karakter değişmezi, operatör veya yapıdan oluşur.
Normal İfadeleri Tanımlamaya Yönelik Yapılar
Normal ifadeleri tanımlamanıza olanak tanıyan çeşitli karakter, operatör ve yapı kategorileri vardır. Bu yapıları bulmak için aşağıdaki bağlantıları tıklayın.
Karakter kaçışları
Karakter sınıfları
Anchors
Yapıları gruplama
Quantifiers
Geri referans yapıları
Alternatif yapılar
Substitutions
Çeşitli yapılar
Regex Sınıfı
Regex sınıfı, bir normal ifadeyi temsil etmek için kullanılır. Aşağıdaki yaygın olarak kullanılan yöntemlere sahiptir -
Sr.No. | Yöntemler ve Açıklama |
---|---|
1 | public bool IsMatch(string input) Regex yapıcısında belirtilen normal ifadenin belirtilen bir giriş dizesinde bir eşleşme bulup bulmadığını gösterir. |
2 | public bool IsMatch(string input, int startat) Regex yapıcısında belirtilen normal ifadenin, dizedeki belirtilen başlangıç konumundan başlayarak belirtilen giriş dizesinde bir eşleşme bulup bulmadığını gösterir. |
3 | public static bool IsMatch(string input, string pattern) Belirtilen normal ifadenin belirtilen giriş dizesinde bir eşleşme bulup bulmadığını gösterir. |
4 | public MatchCollection Matches(string input) Bir normal ifadenin tüm tekrarları için belirtilen girdi dizesini arar. |
5 | public string Replace(string input, string replacement) Belirtilen bir girdi dizesinde, bir normal ifade modeliyle eşleşen tüm dizeleri, belirtilen değiştirme dizesiyle değiştirir. |
6 | public string[] Split(string input) Bir giriş dizesini, Regex yapıcısında belirtilen normal bir ifade deseni tarafından tanımlanan konumlarda bir alt dizeler dizisine böler. |
Yöntemlerin ve özelliklerin tam listesi için lütfen C # üzerindeki Microsoft belgelerini okuyun.
örnek 1
Aşağıdaki örnek, 'S' ile başlayan sözcüklerle eşleşir -
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();
}
}
}
Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -
Matching words that start with 'S':
The Expression: \bS\S*
Splendid
Suns
Örnek 2
Aşağıdaki örnek, 'm' ile başlayan ve 'e' ile biten sözcüklerle eşleşir -
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();
}
}
}
Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -
Matching words start with 'm' and ends with 'e':
The Expression: \bm\S*e\b
make
maze
manage
measure
Örnek 3
Bu örnek fazladan beyaz boşluğun yerine geçer -
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();
}
}
}
Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -
Original String: Hello World
Replacement String: Hello World