Regular Expression Matching a Tag Match a <div> Open Tag Examples Match a Simple Open Tag Examples Match an Open Tag with/without Attributes Examples Match a Tag except <div> with/without Attributes Examples See also Source/Referencee
Regular Expression Matching a Tag
Match a <div> Open Tag
Regular expressions for matching a <div> Tag:
<div>simple matching\<div\>simple matching with escaped characters
Examples
Examples Of Matching a <div> tag
ASP.NET Code Input:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sample Page</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script runat="server">
Sub Page_Load()
Dim xstring As String = ""&vbCrLf
xstring = xstring & " <<div>>"&vbCrLf
xstring = xstring & " <<h1>>Regular Expression"&vbCrLf
xstring = xstring & " Matching a Tag<</h1>>"&vbCrLf
xstring = xstring & " <<p>><<span class=""d6t"">>Regular <<span>>Expression <<span class=""dt"">>"&vbCrLf
xstring = xstring & "Matching <</span>>a<</span>> Tag<</span>><</p>><<br />>"&vbCrLf
xstring = xstring & " <<p>><<span class=""d6t"">>Regular <<span>>Expression <<span class=""dt"">>Matching <</span>>a<</span>> Tag<</span>><</p>><<br />>"&vbCrLf
xstring = xstring & " <<span class=""d6t"">>Regular <<span>>Expression <<span class=""dt"">>Matching <</span>>a<</span>> Tag<</span>><<br />>"&vbCrLf
xstring = xstring & " <<em>><</em>><<h1->>Regular Expression Matching a Tag<</h1>>"&vbCrLf
xstring = xstring & " <</div>>"&vbCrLf
Dim xmatchstr As String
xmatchstr = "Given string: """ & xstring & """<br />"
xmatchstr = xmatchstr & showresult(xstring,"<div>",RegexOptions.None)
xmatchstr = xmatchstr & showresult(xstring,"\<div\>",RegexOptions.None)
lbl01.Text = xmatchstr
End Sub
Function showresult(xstring,xpattern,xoption)
Dim xmatches As MatchCollection
Dim xmatchstr As String = ""
Dim xint As Integer
xmatchstr = xmatchstr & "<br />Result of Regex.Matches(string,""" & xpattern & """," & xoption & "): <br />"
xmatches = Regex.Matches(xstring,xpattern,xoption)
xmatchstr = xmatchstr & "->Result of MatchCollection.Count: """
xmatchstr = xmatchstr & xmatches.Count & """<br />"
For xint = 0 to xmatches.Count - 1
xmatchstr = xmatchstr & "->->Result of MatchCollection("& xint & ").Value, Index, Length: """
xmatchstr = xmatchstr & xmatches(xint).Value & ", " & xmatches(xint).Index & ", " & xmatches(xint).Length & """<br />"
Next
Return xmatchstr
End Function
</script>
</head>
<body>
<%Response.Write("<p>Results on "& Request.ServerVariables("SERVER_SOFTWARE") & " .net: " & System.Environment.Version.ToString & " " & ScriptEngine & " Version " & ScriptEngineMajorVersion & "." & ScriptEngineMinorVersion & "</p>")%>
<% Response.Write ("<h1>This is a Sample Page of Matching a <div> tag</h1>") %>
<p>
<%-- Set on Page_Load --%>
<asp:Label id="lbl01" runat="server" />
</p>
</body>
</html>
HTML Web Page Embedded Output:
Match a Simple Open Tag
Regular expressions for matching any simple open tag:
<\w+>matching with any word characters \w<[a-zA-Z0-9]+>matching with character range
Examples
Examples of Matching a Simple Open Tag
ASP.NET Code Input:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sample Page</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script runat="server">
Sub Page_Load()
Dim xstring As String = ""&vbCrLf
xstring = xstring & " <<div>>"&vbCrLf
xstring = xstring & " <<h1>>Regular Expression"&vbCrLf
xstring = xstring & " Matching a Tag<</h1>>"&vbCrLf
xstring = xstring & " <<p>><<span class=""d6t"">>Regular <<span>>Expression <<span class=""dt"">>"&vbCrLf
xstring = xstring & "Matching <</span>>a<</span>> Tag<</span>><</p>><<br />>"&vbCrLf
xstring = xstring & " <<p>><<span class=""d6t"">>Regular <<span>>Expression <<span class=""dt"">>Matching <</span>>a<</span>> Tag<</span>><</p>><<br />>"&vbCrLf
xstring = xstring & " <<span class=""d6t"">>Regular <<span>>Expression <<span class=""dt"">>Matching <</span>>a<</span>> Tag<</span>><<br />>"&vbCrLf
xstring = xstring & " <<em>><</em>><<h1->>Regular Expression Matching a Tag<</h1>>"&vbCrLf
xstring = xstring & " <</div>>"&vbCrLf
Dim xmatchstr As String
xmatchstr = "Given string: """ & xstring & """<br />"
xmatchstr = xmatchstr & showresult(xstring,"<\w+>",RegexOptions.None)
xmatchstr = xmatchstr & showresult(xstring,"<[a-zA-Z0-9]+>",RegexOptions.None)
lbl01.Text = xmatchstr
End Sub
Function showresult(xstring,xpattern,xoption)
Dim xmatches As MatchCollection
Dim xmatchstr As String = ""
Dim xint As Integer
xmatchstr = xmatchstr & "<br />Result of Regex.Matches(string,""" & xpattern & """," & xoption & "): <br />"
xmatches = Regex.Matches(xstring,xpattern,xoption)
xmatchstr = xmatchstr & "->Result of MatchCollection.Count: """
xmatchstr = xmatchstr & xmatches.Count & """<br />"
For xint = 0 to xmatches.Count - 1
xmatchstr = xmatchstr & "->->Result of MatchCollection("& xint & ").Value, Index, Length: """
xmatchstr = xmatchstr & xmatches(xint).Value & ", " & xmatches(xint).Index & ", " & xmatches(xint).Length & """<br />"
Next
Return xmatchstr
End Function
</script>
</head>
<body>
<%Response.Write("<p>Results on "& Request.ServerVariables("SERVER_SOFTWARE") & " .net: " & System.Environment.Version.ToString & " " & ScriptEngine & " Version " & ScriptEngineMajorVersion & "." & ScriptEngineMinorVersion & "</p>")%>
<% Response.Write ("<h1>This is a Sample Page of Matching a Simple Open Tag</h1>") %>
<p>
<%-- Set on Page_Load --%>
<asp:Label id="lbl01" runat="server" />
</p>
</body>
</html>
HTML Web Page Embedded Output:
Match an Open Tag with/without Attributes
Regular expressions for matching any open tag with/without Attributes:
<.+>matching with wildcard . may fail, e.g. matches also </h1> and <h1> ... </h1><.+?>wildcard . lazy matching may fail, e.g. </h1><[a-zA-Z0-9]+\b[^>]*>character ranges+boundary+not > matching may fail, e.g. <h1-><[a-zA-Z0-9]+( [^>]*)*>character ranges+boundary+not > may resolve the boundary problem
Examples
Examples Of Matching an Open Tag With/without Attributes
ASP.NET Code Input:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sample Page</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script runat="server">
Sub Page_Load()
Dim xstring As String = ""&vbCrLf
xstring = xstring & " <<div>>"&vbCrLf
xstring = xstring & " <<h1>>Regular Expression"&vbCrLf
xstring = xstring & " Matching a Tag<</h1>>"&vbCrLf
xstring = xstring & " <<p>><<span class=""d6t"">>Regular <<span>>Expression <<span class=""dt"">>"&vbCrLf
xstring = xstring & "Matching <</span>>a<</span>> Tag<</span>><</p>><<br />>"&vbCrLf
xstring = xstring & " <<p>><<span class=""d6t"">>Regular <<span>>Expression <<span class=""dt"">>Matching <</span>>a<</span>> Tag<</span>><</p>><<br />>"&vbCrLf
xstring = xstring & " <<span class=""d6t"">>Regular <<span>>Expression <<span class=""dt"">>Matching <</span>>a<</span>> Tag<</span>><<br />>"&vbCrLf
xstring = xstring & " <<em>><</em>><<h1->>Regular Expression Matching a Tag<</h1>>"&vbCrLf
xstring = xstring & " <</div>>"&vbCrLf
Dim xmatchstr As String
xmatchstr = "Given string: """ & xstring & """<br />"
xmatchstr = xmatchstr & showresult(xstring,"<.+>",RegexOptions.None)
xmatchstr = xmatchstr & showresult(xstring,"<.+?>",RegexOptions.None)
xmatchstr = xmatchstr & showresult(xstring,"<[a-zA-Z0-9]+\b[^>]*>",RegexOptions.None)
xmatchstr = xmatchstr & showresult(xstring,"<[a-zA-Z0-9]+( [^>]*)*>",RegexOptions.None)
lbl01.Text = xmatchstr
End Sub
Function showresult(xstring,xpattern,xoption)
Dim xmatches As MatchCollection
Dim xmatchstr As String = ""
Dim xint As Integer
xmatchstr = xmatchstr & "<br />Result of Regex.Matches(string,""" & xpattern & """," & xoption & "): <br />"
xmatches = Regex.Matches(xstring,xpattern,xoption)
xmatchstr = xmatchstr & "->Result of MatchCollection.Count: """
xmatchstr = xmatchstr & xmatches.Count & """<br />"
For xint = 0 to xmatches.Count - 1
xmatchstr = xmatchstr & "->->Result of MatchCollection("& xint & ").Value, Index, Length: """
xmatchstr = xmatchstr & xmatches(xint).Value & ", " & xmatches(xint).Index & ", " & xmatches(xint).Length & """<br />"
Next
Return xmatchstr
End Function
</script>
</head>
<body>
<%Response.Write("<p>Results on "& Request.ServerVariables("SERVER_SOFTWARE") & " .net: " & System.Environment.Version.ToString & " " & ScriptEngine & " Version " & ScriptEngineMajorVersion & "." & ScriptEngineMinorVersion & "</p>")%>
<% Response.Write ("<h1>This is a Sample Page of Matching an Open Tag with/without Attributes</h1>") %>
<p>
<%-- Set on Page_Load --%>
<asp:Label id="lbl01" runat="server" />
</p>
</body>
</html>
HTML Web Page Embedded Output:
Match a Tag except <div> with/without Attributes
Regular expressions for matching a tag except <div> with/without Attributes:
<([a-zA-Z0-9]+)( [^>]*)*>.*?</\1>the wildcard . lazy matching may fail. e.g. self-nested tags(?!<div)<([^h][a-zA-Z0-9]+)( [^>]*)*>.*?</\1>the wildcard . lazy matching with singleline option may have same problem.(?!<div)<([a-zA-Z0-9]+)( [^>]*)*>[\w\W]*?</\1>the any word or non-word character lazy mathcing is similar to singleline option and may have same problem.(?!<div)<([a-zA-Z0-9]+)( [^>]*)*>(?(</\1>|<\1)|.)*</\1>the zero-width alternation method is used to resolves the problem by not allowing any self-nested tags.(?!<div)<([a-zA-Z0-9]+)( [^>]*)*>(?(</\1>|<\1)|[\w\W])*</\1>the zero-width alternation method is used to resolves the problem by not allowing any self-nested tags.(?!<div)<([a-zA-Z0-9]+)( [^>]*)*>[^<]*</\1>the negation < lazy matching is used to resolve the problem by not allowing any inner tags.(?!<div)<([a-zA-Z0-9]+)( [^>]*)*>(?(<)|[\w\W])*</\1>the zero-width alternation method is used to resolve the problem by not allowing any inner tags.
Examples
Examples Of Matching a Tag except <div> With/without Attributes
ASP.NET Code Input:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sample Page</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script runat="server">
Sub Page_Load()
Dim xstring As String = ""&vbCrLf
xstring = xstring & " <<div>>"&vbCrLf
xstring = xstring & " <<h1>>Regular Expression"&vbCrLf
xstring = xstring & " Matching a Tag<</h1>>"&vbCrLf
xstring = xstring & " <<p>><<span class=""d6t"">>Regular <<span>>Expression <<span class=""dt"">>"&vbCrLf
xstring = xstring & "Matching <</span>>a<</span>> Tag<</span>><</p>><<br />>"&vbCrLf
xstring = xstring & " <<p>><<span class=""d6t"">>Regular <<span>>Expression <<span class=""dt"">>Matching <</span>>a<</span>> Tag<</span>><</p>><<br />>"&vbCrLf
xstring = xstring & " <<span class=""d6t"">>Regular <<span>>Expression <<span class=""dt"">>Matching <</span>>a<</span>> Tag<</span>><<br />>"&vbCrLf
xstring = xstring & " <<em>><</em>><<h1->>Regular Expression Matching a Tag<</h1>>"&vbCrLf
xstring = xstring & " <</div>>"&vbCrLf
Dim xmatchstr As String
xmatchstr = "Given string: """ & xstring & """<br />"
xmatchstr = xmatchstr & showresult(xstring,"<([a-zA-Z0-9]+)( [^>]*)*>.*?<1>",RegexOptions.None)
xmatchstr = xmatchstr & showresult(xstring,"(?!<div)<([a-zA-Z0-9]+)( [^>]*)*>.*?<1>",RegexOptions.Singleline)
xmatchstr = xmatchstr & showresult(xstring,"(?!<div)<([a-zA-Z0-9]+)( [^>]*)*>[\w\W]*?<1>",RegexOptions.None)
xmatchstr = xmatchstr & showresult(xstring,"(?!<div)<([a-zA-Z0-9]+)( [^>]*)*>(?(<1>|<\1)|.)*<1>",RegexOptions.None)
xmatchstr = xmatchstr & showresult(xstring,"(?!<div)<([a-zA-Z0-9]+)( [^>]*)*>(?(<1>|<\1)|[\w\W])*<1>",RegexOptions.None)
xmatchstr = xmatchstr & showresult(xstring,"(?!<div)<([a-zA-Z0-9]+)( [^>]*)*>[^<]*<1>",RegexOptions.None)
xmatchstr = xmatchstr & showresult(xstring,"(?!<div)<([a-zA-Z0-9]+)( [^>]*)*>(?(<)|[\w\W])*<1>",RegexOptions.None)
lbl01.Text = xmatchstr
End Sub
Function showresult(xstring,xpattern,xoption)
Dim xmatches As MatchCollection
Dim xmatchstr As String = ""
Dim xint As Integer
xmatchstr = xmatchstr & "<br />Result of Regex.Matches(string,""" & xpattern & """," & xoption & "): <br />"
xmatches = Regex.Matches(xstring,xpattern,xoption)
xmatchstr = xmatchstr & "->Result of MatchCollection.Count: """
xmatchstr = xmatchstr & xmatches.Count & """<br />"
For xint = 0 to xmatches.Count - 1
xmatchstr = xmatchstr & "->->Result of MatchCollection("& xint & ").Value, Index, Length: """
xmatchstr = xmatchstr & xmatches(xint).Value & ", " & xmatches(xint).Index & ", " & xmatches(xint).Length & """<br />"
Next
Return xmatchstr
End Function
</script>
</head>
<body>
<%Response.Write("<p>Results on "& Request.ServerVariables("SERVER_SOFTWARE") & " .net: " & System.Environment.Version.ToString & " " & ScriptEngine & " Version " & ScriptEngineMajorVersion & "." & ScriptEngineMinorVersion & "</p>")%>
<% Response.Write ("<h1>This is a Sample Page of Matching a Tag except <div> with/without Attributes</h1>") %>
<p>
<%-- Set on Page_Load --%>
<asp:Label id="lbl01" runat="server" />
</p>
</body>
</html>