Sideway
output.to from Sideway
Draft for Information Only

Content

Regular Expression Anchors
 .NET Anchors
  Start of String or Line: ^
  End of String or Line: $
  Start of String Only: \A
  End of String or Before Ending Newline: \Z
  End of String Only: \z
  Contiguous Matches: \G
  Word Boundary: \b
  Non-Word Boundary: \B
 Examples
 See also
 Source/Reference

Regular Expression Anchors

Anchors, or atomic zero-width assertions, specify a position in the string where a match must occur. When using an anchor in a search expression, the regular expression engine does not advance through the string or consume characters; it looks for a match in the specified position only.

  • a symbol is used to represent an anchor. e.g. ^, $.
  • an escaped character is used to represent an anchor, e.g. \A, \Z, \z, \G, \b, and \B.

.NET Anchors

Start of String or Line: ^

By default, the ^ anchor is used to specify that the following pattern must begin at the first character position of the string. If the ^ anchor is used with the RegexOptions.Multiline option, the match must occur at the beginning of each line.

End of String or Line: $

By default, the $ anchor is used to specify that the preceding pattern must occur at the end of the input string, or before \n at the end of the input string. If the $ anchor is used with the RegexOptions.Multiline option, the match can also occur at the end of a line. Note that $ matches \n but does not match \r\n (the combination of carriage return and newline characters, or CR/LF). To match the CR/LF character combination, include \r?$ in the regular expression pattern.

Start of String Only: \A

The escaped \A anchor is used specify that the following pattern must occur at the beginning of the input string. It is identical to the ^ anchor, except that \A ignores the RegexOptions.Multiline option. Therefore, it can only match the start of the first line in a multiline input string.

End of String or Before Ending Newline: \Z

The escaped \Z anchor is used to specify that the preceding must occur at the end of the input string, or before \n at the end of the input string. It is identical to the $ anchor, except that \Z ignores the RegexOptions.Multiline option. Therefore, in a multiline string, it can only match the end of the last line, or the last line before \n.

Note that \Z matches \n but does not match \r\n (the CR/LF character combination). To match CR/LF, include \r?\Z in the regular expression pattern.

End of String Only: \z

The escaped \z anchor is used to specify that the preceding pattern must occur at the end of the input string. Like the $ language element, \z ignores the RegexOptions.Multiline option. Unlike the \Z language element, \z does not match a \n character at the end of a string. Therefore, it can only match the last line of the input string.

Contiguous Matches: \G

The escaped \G anchor is used to specify that the following pattern must occur at the point where the previous match ended. When you use this anchor with the Regex.Matches or Match.NextMatch method, it ensures that all matches are contiguous.

Word Boundary: \b

The escaped \b anchor is used to specify that the match must occur on a boundary between a word character (the \w language element) and a non-word character (the \W language element). Word characters consist of alphanumeric characters and underscores; a non-word character is any character that is not alphanumeric or an underscore. (For more information, see Character Classes.) The match may also occur on a word boundary at the beginning or end of the string.

The \b anchor is frequently used to ensure that a subexpression matches an entire word instead of just the beginning or end of a word.

Non-Word Boundary: \B

The escaped \B anchor is used to specify that the match must not occur on a word boundary. It is the opposite of the \b anchor.

Examples

Examples of Anchors
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 = "01234 67 9"&Chr(10)&"01 345"&Chr(13)&"67 9012 456"&Chr(13)&Chr(10)&"7890"&Chr(13)&Chr(10)
               Dim xmatchstr As String = ""
               Dim xoption As RegexOptions = RegexOptions.Multiline
               xmatchstr = xmatchstr & "Given string: " & """01234 67 9""&amp;Chr(10)&amp;""01 345""&amp;Chr(13)&amp;""67 9012 456""&amp;Chr(13)&amp;Chr(10)&amp;""7890""&amp;Chr(13)&amp;Chr(10)" & "<br />"
               xmatchstr = xmatchstr & showresult(xstring,"^(\w+)",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"^(\w+)",RegexOptions.Multiline)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)$",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)$",RegexOptions.Multiline)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)\r?$",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)\r?$",RegexOptions.Multiline)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)\r+$",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)\r+$",RegexOptions.Multiline)
               xmatchstr = xmatchstr & showresult(xstring,"\A(\w+)",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\A(\w+)",RegexOptions.Multiline)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)\r*\Z",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)\r*\Z",RegexOptions.Multiline)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)[\r\n]*\Z",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)[\r\n]*\Z",RegexOptions.Multiline)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)\r*\z",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)\r*\z",RegexOptions.Multiline)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)[\r\n]*\z",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"(\w+)[\r\n]*\z",RegexOptions.Multiline)
               xmatchstr = xmatchstr & showresult(xstring,"\G(\w+ )",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\G(\w+ )*",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\G(\w+ )+",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\b\w+",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\w+\b",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\b\w+\b",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\b\w",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\w\b",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\b\w\b",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\B\w+",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\w+\B",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\B\w+\B",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\B\w",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\w\B",RegexOptions.None)
               xmatchstr = xmatchstr & showresult(xstring,"\B\w\B",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 ("<h1>This is a Sample Page of Anchors</h1>") %>
       <p>
           <%-- Set on Page_Load --%>
           <asp:Label id="lbl01" runat="server" />
       </p>
    </body>
</html>
HTML Web Page Embedded Output:

See also

  • Regular Expression Language - Quick Reference
  • Regular Expression Options

Source/Reference

  • https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference
  • https://docs.microsoft.com/en-us/dotnet/standard/base-types/anchors-in-regular-expressions

©sideway

ID: 190700027 Last Updated: 7/27/2019 Revision: 0 Ref:

close

References

  1. Active Server Pages,  , http://msdn.microsoft.com/en-us/library/aa286483.aspx
  2. ASP Overview,  , http://msdn.microsoft.com/en-us/library/ms524929%28v=vs.90%29.aspx
  3. ASP Best Practices,  , http://technet.microsoft.com/en-us/library/cc939157.aspx
  4. ASP Built-in Objects,  , http://msdn.microsoft.com/en-us/library/ie/ms524716(v=vs.90).aspx
  5. Response Object,  , http://msdn.microsoft.com/en-us/library/ms525405(v=vs.90).aspx
  6. Request Object,  , http://msdn.microsoft.com/en-us/library/ms524948(v=vs.90).aspx
  7. Server Object (IIS),  , http://msdn.microsoft.com/en-us/library/ms525541(v=vs.90).aspx
  8. Application Object (IIS),  , http://msdn.microsoft.com/en-us/library/ms525360(v=vs.90).aspx
  9. Session Object (IIS),  , http://msdn.microsoft.com/en-us/library/ms524319(8v=vs.90).aspx
  10. ASPError Object,  , http://msdn.microsoft.com/en-us/library/ms524942(v=vs.90).aspx
  11. ObjectContext Object (IIS),  , http://msdn.microsoft.com/en-us/library/ms525667(v=vs.90).aspx
  12. Debugging Global.asa Files,  , http://msdn.microsoft.com/en-us/library/aa291249(v=vs.71).aspx
  13. How to: Debug Global.asa files,  , http://msdn.microsoft.com/en-us/library/ms241868(v=vs.80).aspx
  14. Calling COM Components from ASP Pages,  , http://msdn.microsoft.com/en-us/library/ms524620(v=VS.90).aspx
  15. IIS ASP Scripting Reference,  , http://msdn.microsoft.com/en-us/library/ms524664(v=vs.90).aspx
  16. ASP Keywords,  , http://msdn.microsoft.com/en-us/library/ms524672(v=vs.90).aspx
  17. Creating Simple ASP Pages,  , http://msdn.microsoft.com/en-us/library/ms524741(v=vs.90).aspx
  18. Including Files in ASP Applications,  , http://msdn.microsoft.com/en-us/library/ms524876(v=vs.90).aspx
  19. ASP Overview,  , http://msdn.microsoft.com/en-us/library/ms524929(v=vs.90).aspx
  20. FileSystemObject Object,  , http://msdn.microsoft.com/en-us/library/z9ty6h50(v=vs.84).aspx
  21. http://msdn.microsoft.com/en-us/library/windows/desktop/ms675944(v=vs.85).aspx,  , ADO Object Model
  22. ADO Fundamentals,  , http://msdn.microsoft.com/en-us/library/windows/desktop/ms680928(v=vs.85).aspx
close

Latest Updated LinksValid XHTML 1.0 Transitional Valid CSS!Nu Html Checker Firefox53 Chromena IExplorerna
IMAGE

Home 5

Business

Management

HBR 3

Information

Recreation

Hobbies 8

Culture

Chinese 1097

English 339

Reference 79

Computer

Hardware 249

Software

Application 213

Digitization 32

Latex 52

Manim 205

KB 1

Numeric 19

Programming

Web 289

Unicode 504

HTML 66

CSS 65

SVG 46

ASP.NET 270

OS 429

DeskTop 7

Python 72

Knowledge

Mathematics

Formulas 8

Algebra 84

Number Theory 206

Trigonometry 31

Geometry 34

Coordinate Geometry 2

Calculus 67

Complex Analysis 21

Engineering

Tables 8

Mechanical

Mechanics 1

Rigid Bodies

Statics 92

Dynamics 37

Fluid 5

Fluid Kinematics 5

Control

Process Control 1

Acoustics 19

FiniteElement 2

Natural Sciences

Matter 1

Electric 27

Biology 1

Geography 1


Copyright © 2000-2024 Sideway . All rights reserved Disclaimers last modified on 06 September 2019