Cách xác thực thẻ html bằng biểu thức chính quy

Bài viết này cho thấy cách bạn có thể trích xuất các thẻ HTML và nội dung bên trong các thẻ HTML bằng cách sử dụng biểu thức chính quy C# (regex)

Trích xuất các thẻ HTML từ các chuỗi có thể cực kỳ hữu ích khi phân tích cú pháp các trang web. Với regex, bạn có thể phân tích cú pháp các thẻ HTML, nội dung trong các thẻ HTML hoặc cả hai. Bài viết này giải thích ba trường hợp sử dụng này

Chỉ tìm các thẻ HTML

You can use the Matches() method from the Regex class to find all the HTML tags within a string. You can use the regular expression “<.*?>“ to do so. This regular expression matches anything that occurs between the opening and closing greater than and less than symbols.

Nếu một chuỗi chứa mẫu <>, thuộc tính đếm của phương thức Matches() trả về True. Sau đó, bạn có thể lặp qua tất cả các đối tượng Match trong bộ sưu tập Matches và truy cập chuỗi đã khớp thông qua thuộc tính value

Đây là một ví dụ. Trong tập lệnh bên dưới, phương thức Matches() khớp mở và đóng chữ đậm và đoạn văn

thẻ

Ghi chú. Bạn sẽ cần nhập “Hệ thống. Chữ. RegularExpressions” trước khi chạy tập lệnh bên dưới

 class Program
    {
        static void Main(string[] args)
        {
            string input = "This written in bold fonts. This is simple font again bold fonts. " +
                "This is 

paragraph

";            string regex = @"<.*?>";             var matches = Regex.Matches(input, regex);             if (matches.Count > 0)             {                Console.WriteLine("Match found:");                 foreach (Match m in matches)                 {                     Console.WriteLine(m.Value);                 }            }            Console.ReadLine();         }     }

đầu ra

Cách xác thực thẻ html bằng biểu thức chính quy

Tìm thẻ HTML bao gồm nội dung

Bạn cũng có thể tìm các thẻ HTML và nội dung bên trong các thẻ HTML bằng cách sử dụng phương thức Match() và Matches(). Phương thức Match() tìm kiếm một lần xuất hiện

Hãy xem một ví dụ. Nếu bạn muốn tìm thẻ in đậm và nội dung bên trong thẻ này, bạn có thể sử dụng biểu thức regex “\s(. +?)\s”. Biểu thức regex này khớp với bất kỳ thứ gì xảy ra trong các thẻ in đậm mở và đóng

Nếu tìm thấy kết quả phù hợp, thuộc tính Thành công của phương thức Match() trả về true. Trong trường hợp đó, bạn có thể truy cập giá trị phù hợp thông qua thuộc tính Giá trị. Đây là một kịch bản mẫu

 class Program
    {
        static void Main(string[] args)
        {
            string input = "This written in bold fonts. This is simple font";
            string regex = @"\s*(.+?)\s*";
            var match = Regex.Match(input, regex);
            if (match.Success == true)
            {
                Console.WriteLine("Match found");
                Console.WriteLine(match.Value);
            }
            Console.ReadLine();
        }
    }

đầu ra

Cách xác thực thẻ html bằng biểu thức chính quy

Nếu bạn muốn tìm kiếm nhiều thẻ trong một chuỗi, bạn có thể sử dụng phương thức Matches() trả về một tập hợp các đối tượng lớp Match. Sau đó, bạn có thể truy cập tất cả các đối sánh được gắn thẻ thông qua các thuộc tính giá trị của tất cả các đối tượng phù hợp

Tập lệnh bên dưới tìm kiếm tất cả các thẻ in đậm trong chuỗi đầu vào

 class Program
    {
        static void Main(string[] args)
        {
            string input = "This written in bold fonts. This is simple font again bold fonts";
            string regex = @" \s*(.+?)\s*";
            var matches = Regex.Matches(input, regex);
            if (matches.Count > 0)
            {
                Console.WriteLine("Match found:");
                foreach (Match m in matches)
                {
                    Console.WriteLine(m.Value);
                }
            }
            Console.ReadLine();
        }
    }

đầu ra

Cách xác thực thẻ html bằng biểu thức chính quy

Trong kết quả ở trên, bạn có thể thấy rằng các thẻ cùng với nội dung được tìm thấy

Tìm nội dung trong thẻ HTML

Cuối cùng, bạn cũng có thể chỉ tìm thấy nội dung trong các thẻ HTML. Để làm như vậy, bạn có thể sử dụng phương thức Match(). Biểu thức chính quy được sử dụng cho mục đích này là “\s(. +?)\s”. Biểu thức chính quy này sẽ khớp với bất cứ điều gì xảy ra trong các phông chữ đậm mở và đóng

Các thẻ HTML sẽ được lưu trữ tại chỉ mục đầu tiên của bộ sưu tập Nhóm, đây là một thuộc tính của đối tượng Match. Nội dung có thể được truy cập bằng cách lập chỉ mục chỉ mục thứ hai (chỉ mục được tham chiếu bởi 1)

Nhìn vào kịch bản dưới đây chẳng hạn

class Program
    {
        static void Main(string[] args)
        {
            string input = "This written in bold fonts. This is simple font";
            string regex = @"\s*(.+?)\s*";
            var match = Regex.Match(input, regex);
            if (match.Success == true)
            {
                Console.WriteLine("Match found");
                Console.WriteLine(match.Groups[1].Value);
            }
            Console.ReadLine();
        }
    }

đầu ra

Cách xác thực thẻ html bằng biểu thức chính quy

Ở đầu ra của đoạn script trên, bạn chỉ có thể thấy nội dung từ thẻ HTML được in trên bảng điều khiển

Cuối cùng, bạn có thể tìm thấy nội dung từ nhiều thẻ HTML. Để làm như vậy, bạn có thể sử dụng phương thức Matches() với cùng biểu thức chính quy mà bạn đã thấy trong tập lệnh trước. Đây là một ví dụ về cách làm điều đó

Bạn có thể sử dụng các biểu thức chính quy trong HTML không?

Nói tóm lại, các biểu thức chính quy có thể được sử dụng để khớp các thẻ HTML và trích xuất dữ liệu trong tài liệu HTML

Làm cách nào để xác thực mã HTML của tôi?

Bạn có thể xác thực cả tệp HTML và CSS. Bạn có thể sử dụng bất kỳ gói phần mềm thương mại hoặc ứng dụng trực tuyến miễn phí nào, chẳng hạn như trình xác thực World Wide Web Consortium (W3C) sau đây. Trình xác thực CSS của W3C tại http. // ghép hình. w3. org/css-validator/ Trình xác thực HTML W3C tại http. // trình xác thực. w3. tổ chức/

Làm cách nào để xác thực đầu vào bằng regex?

Bạn có thể sử dụng regex để xác thực thông tin nhập vào biểu mẫu theo một số cách. .
Lấy giá trị của đầu vào biểu mẫu
Kiểm tra xem giá trị của đầu vào có khớp với biểu thức chính quy không
Nếu không, hiển thị cho người dùng trang web rằng giá trị của trường nhập không hợp lệ