regexp-php-reference-php-delimiters-9

  • PCRE regex
    syntax
  • Delimiters

  • Delimiters
  • Delimiters

    Delimiters

    When using the PCRE functions, it is required that
    the pattern is enclosed by delimiters. A
    delimiter can be any non-alphanumeric, non-backslash,
    non-whitespace character.

    Often used delimiters are forward slashes
    (/), hash signs (#) and tildes (~). The
    following are all examples of valid delimited patterns.

    /foo bar/
    #^[^0-9]$#
    +php+
    %[a-zA-Z0-9_-]%
    

    It is also possible to use bracket style delimiters
    where the opening and closing brackets are the starting and ending
    delimiter, respectively. (), {}, [] and
    <> are all valid bracket style delimiter pairs.

    (this [is] a (pattern))
    {this [is] a (pattern)}
    [this [is] a (pattern)]
    <this [is] a (pattern)>
    

    Bracket style delimiters do not need to be escaped when they are
    used as meta characters within the pattern, but as with other
    delimiters they must be escaped when they are used as literal
    characters.

    If the delimiter needs to be matched inside the
    pattern it must be escaped using a backslash. If the delimiter
    appears often inside the pattern, it is a good idea to choose
    another delimiter in order to increase readability.

    /http:\/\//
    #http://#
    

    The preg_quote() function may be used to
    escape a string for injection into a pattern and its optional
    second parameter may be used to specify the delimiter to be
    escaped.

    You may add pattern
    modifiers
    after the ending delimiter. The following is an
    example of case-insensitive matching:

    #[a-z]#i