C # - นิพจน์ทั่วไป
ก regular expressionเป็นรูปแบบที่สามารถจับคู่กับข้อความที่ป้อนได้ กรอบงาน. Net มีเครื่องมือนิพจน์ทั่วไปที่อนุญาตให้จับคู่ดังกล่าว รูปแบบประกอบด้วยตัวอักษรตัวดำเนินการหรือโครงสร้างอย่างน้อยหนึ่งตัวอักษร
โครงสร้างสำหรับการกำหนดนิพจน์ทั่วไป
มีประเภทอักขระตัวดำเนินการและโครงสร้างต่างๆที่ช่วยให้คุณกำหนดนิพจน์ทั่วไปได้ คลิกลิงก์ต่อไปนี้เพื่อค้นหาโครงสร้างเหล่านี้
ตัวละครหนี
คลาสตัวละคร
Anchors
การจัดกลุ่มโครงสร้าง
Quantifiers
โครงสร้าง Backreference
โครงสร้างทางเลือก
Substitutions
โครงสร้างเบ็ดเตล็ด
คลาส Regex
คลาส Regex ใช้สำหรับแสดงนิพจน์ทั่วไป มีวิธีการที่ใช้กันทั่วไปดังต่อไปนี้ -
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | public bool IsMatch(string input) ระบุว่านิพจน์ทั่วไปที่ระบุในตัวสร้าง Regex พบการจับคู่ในสตริงอินพุตที่ระบุหรือไม่ |
2 | public bool IsMatch(string input, int startat) ระบุว่านิพจน์ทั่วไปที่ระบุในตัวสร้าง Regex พบการจับคู่ในสตริงอินพุตที่ระบุโดยเริ่มต้นที่ตำแหน่งเริ่มต้นที่ระบุในสตริง |
3 | public static bool IsMatch(string input, string pattern) ระบุว่านิพจน์ทั่วไปที่ระบุพบการจับคู่ในสตริงอินพุตที่ระบุหรือไม่ |
4 | public MatchCollection Matches(string input) ค้นหาสตริงอินพุตที่ระบุสำหรับการเกิดขึ้นทั้งหมดของนิพจน์ทั่วไป |
5 | public string Replace(string input, string replacement) ในสตริงอินพุตที่ระบุแทนที่สตริงทั้งหมดที่ตรงกับรูปแบบนิพจน์ทั่วไปด้วยสตริงแทนที่ที่ระบุ |
6 | public string[] Split(string input) แยกสตริงอินพุตเป็นอาร์เรย์ของสตริงย่อยที่ตำแหน่งที่กำหนดโดยรูปแบบนิพจน์ทั่วไปที่ระบุในตัวสร้าง Regex |
สำหรับรายการวิธีการและคุณสมบัติทั้งหมดโปรดอ่านเอกสารของ Microsoft ใน C #
ตัวอย่าง 1
ตัวอย่างต่อไปนี้ตรงกับคำที่ขึ้นต้นด้วย "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();
}
}
}
เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -
Matching words that start with 'S':
The Expression: \bS\S*
Splendid
Suns
ตัวอย่าง 2
ตัวอย่างต่อไปนี้จับคู่คำที่ขึ้นต้นด้วย 'm' และลงท้ายด้วย '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();
}
}
}
เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -
Matching words start with 'm' and ends with 'e':
The Expression: \bm\S*e\b
make
maze
manage
measure
ตัวอย่างที่ 3
ตัวอย่างนี้แทนที่ช่องว่างเพิ่มเติม -
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();
}
}
}
เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -
Original String: Hello World
Replacement String: Hello World