Danh mục

C# và các lớp cơ sở Biểu thức chính quy ( Regular Expression) – Phần 1

Số trang: 9      Loại file: pdf      Dung lượng: 116.26 KB      Lượt xem: 18      Lượt tải: 0    
Hoai.2512

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Biểu thức chính quy là 1 dạng kĩ thuật nhỏ mà hữu ích trong 1 vùng rộng lớp của chương trình, mặc dù không được nhiều nhà phát triển biết đến. nó có thể hiểu như là 1 ngôn ngữ nhỏ dùng cho mục đích : để tìm chuỗi con trong biểu thức chuỗi lớn.nó không phải là một kĩ thuật mới, xuất phát từ môi trường UNIX, đuợc dùng với PERL. Microsoft cho nó vào Windows,và cho đến giờ thì nó hầu như được sử dụng với những ngôn ngữ kịch bản. ...
Nội dung trích xuất từ tài liệu:
C# và các lớp cơ sở Biểu thức chính quy ( Regular Expression) – Phần 1 C# và các lớp cơ sở Biểu thức chính quy ( Regular Expression) – Phần 1Biểu thức chính quy là 1 dạng kĩ thuật nhỏ mà hữu ích trong 1 vùng rộng lớpcủa chương trình, mặc dù không được nhiều nhà phát triển biết đến. nó cóthể hiểu như là 1 ngôn ngữ nhỏ dùng cho mục đích : để tìm chuỗi con trongbiểu thức chuỗi lớn.nó không phải là một kĩ thuật mới, xuất phát từ môitrường UNIX, đuợc dùng với PERL. Microsoft cho nó vào Windows,và chođến giờ thì nó hầu như được sử dụng với những ngôn ngữ kịch bản.Biểuthức chính quy được hổ trợ bởi một số lớp .NET trong namespace :System.Text.RegularExpressionsGiới thiệu về Biểu thức chính quy.Ngôn ngữ biểu thức chính quy là ngôn ngữ được thiết kế đặc biệt cho việcxử lí chuỗi.chứa đựng 2 đặc tính : - 1 tập mã escape cho việc xác định kiểu của các kí tự . ta quen với việcdùng kí tự * để trình bày chuỗi con bất kì trong biểu thức DOS . biểu thứcchính quy dùng nhiều chuỗi như thế để trình bày các mục như là bất kì 1 kítự ,1 từ ngắt ,1 kí tự tuỳ chọn,... - 1 hệ thống cho việc nhóm những phần chuỗi con, và trả về kết quảtrong suốt thao tác tìm.dùng biểu thức chính quy , có thể biểu diễn những thao tác ở cấp cao vàphức tạp trên chuỗi.ví dụ : - Xác định tất cả các từ lặp lại trong chuỗi , chuyển The computerbooks books thành The computer books - Chuyển tất cả các từ theo title case, như là chuyển this is a Titlethàh This Is A Title. - Chuyển những từ dài hơn 3 kí tự thành title case , ví dụ chuyển this isa Title to This is a Title - Bảo đảm các câu được viết hoa - Phân cách những phần tử của URL ( ví dụ cho http://www.wrox.com),chi tiết giao thức tên máy, tên file ,..)mặc dù thể sử dụng các phương thức System.String và cóSystem.Text.StringBuilder để làm các việc trên nhưng nếu dùng biểu thứcchính quy thì mã có thể được giảm xuống còn vài dòng.ta khởi tạo 1 đốitượng System.Text.RegularExpressions.RegEx , truyền vào nó chuỗi đượcxử lí, và 1 biểu thức chính quy ( 1 chuỗi chứa đựng các lệnh trong ngôn ngữbiểu thức chính quy ).1 chuỗi biểu thức chính quy nhìn giống 1 chuỗi bình thường nhưng có thêm1 số chuỗi hoặc kí tự khác làm cho nó có ý nghĩa đặc biệt hơn.ví dụ chuỗi chỉ định việc bắt đầu hay kết thúc 1 từ , vì thế nếu ta muốn chỉ định tìm kí tựth bắt đầu 1 từ, ta có thể tìm theo biểu thức chính quy , th .nếu muốn tìm tấtcả sự xuất hiện của th ở cuối từ ta viết th. tuy nhiên , biểu thức chính quycó thể phức tạp hơn thế, ví dụ điều kiện để lưu trữ phần kí tự mà tìm thấybởi thao tác tìm kiếm.1 ví dụ khác giả sử như ta muốn chuyển 1 số diện thoại UK từ trong nướcsang định dạng quốc tế. trong UK, định dạng ví dụ như là 01233 345532hoặc (01233 345532) mà theo quốc tế sẽ là +44 12330345532, nói cách khácsố 0 đầu sẽ được thay bằng +44 và các dấu ngặc phải được bỏ.Thao tác này không quá phức tạp, nhưng cũng hơi rắc rối nếu ta dùng lớpchuỗi để làm ( nghĩa là dùng các phương thức trong lớp chuỗi). ngôn ngữbiểu thức chính quy sẽ cho phép ta xây dựng 1 chuỗi ngắn mà sẽ được phiêndịch để đạt được yêu cầu trên.Ví dụ RegularExpressionsPlayaroundTrong phần cuối của phần này ta sẽ phát triển 1 ví dụ ngắn thể hiện vài đặctính của biểu thức chính quy và cách dùng biểu thức chính quy trong C#bằng biệc trình bày và biểu diễn kết quả của việc tìm kiếm.ta dùng 1 đoạnvăn bản trong cuốn sách XML cho ví dụ của ta :string Text =@XML has made a major impact in almost every aspect of softwaredevelopmentDesigned as an open, extensible, self-describing language,it has become the standard for data and document delivery on the web.The panoply of XML-related technologies continues to develop at breakneckspeed, to enable validation, navigation, transformation, linking, querying,description, and messaging of data.;Ta xem đoạn văn bản này là chuỗi input.giả sử ta muốn tìm tất cả các lầnxuất hiện của ion. ta sẽ viết như sau:string Pattern = ion;MatchCollection Matches = Regex.Matches(Text, Pattern,RegexOptions.IgnoreCase |RegexOptions.ExplicitCapture);foreach (Match NextMatch in Matches){Console.WriteLine(NextMatch.Index);}Trong ví dụ này ta dùng phương thức tĩnh Matches() của lớp Regex trongnamespace System.Text.RegularExpressions . phương thức này có thông sốlà text, pattern, và tập cờ từ cấu trúc liệt kê RegexOptions.trong trường hợpnày ta chỉ định tìm kiếm không phân biệt chữ hoa - thường. và cờExplicitCapture, cập nhật cách mà match được thu thập. - ta sẽ thấy tại saohàm Matches() trả về 1 tham chiếu đến đối tượng MatchCollection. 1 matchlà 1 thuật ngữ kĩ thuật cho những kết quả của việc tìm 1 thể hiện của pattern biểu thức. được trình bởi lớptrong ...

Tài liệu được xem nhiều: