BBEdit-TextWrangler RegEx Cheat Sheet
BBEdit-TextWrangler RegEx Cheat Sheet
—————————————————
BBEdit / BBEdit-Lite / TextWrangler Regular Expression Guide Modified:
2018/08/10 01:19
———————————————————————————————————————————————————————————————————————————————————
—————————————————
NOTES:
The PCRE engine (Perl Compatible Regular Expressions) is what BBEdit and
TextWrangler use.
Items I'm unsure of are marked '# PCRE?'. The list while fairly comprehensive is
not complete.
———————————————————————————————————————————————————————————————————————————————————
—————————————————
PATTERN MODIFIERS (switches)
———————————————————————————————————————————————————————————————————————————————————
—————————————————
i Case-insensitive
m Multiline : allow the grep engine to match at ^ and $ after and
before at \r or \n.
s Magic Dot : allows . to match \r and \n
x Free-spacing: ignore unescaped white space; allow inline comments in
grep patterns.
(?imsx) On
(?-imsx) Off
(?i-msx) Mixed
———————————————————————————————————————————————————————————————————————————————————
—————————————————
Regex Meta-Characters:
———————————————————————————————————————————————————————————————————————————————————
—————————————————
———————————————————————————————————————————————————————————————————————————————————
—————————————————
Case-Change Operators
———————————————————————————————————————————————————————————————————————————————————
—————————————————
\E Change case - acts as an end delimiter to terminate runs of \L & \U.
\l Change case of only the first character to the right lower case.
(Note: lowercase 'L')
\L Change case of all text to the right to lowercase.
\u Change case of only the first character to the right to uppercase.
\U Change case of all text to the right to uppercase.
———————————————————————————————————————————————————————————————————————————————————
—————————————————
White-Space or Non-White-Space
———————————————————————————————————————————————————————————————————————————————————
—————————————————
\t Tab
\n Linefeed
\r Return
\R Return or Linefeed or Windows CRLF (matches any Unicode newline
sequence).
\f Formfeed
\s Whitespace character equivalent to [ \t\n\r\f]
\S Non-whitespace character
———————————————————————————————————————————————————————————————————————————————————
—————————————————
\W Non-word character
\w Word character[0-9A-Za-z_]
\z End of a string
\Z End of a string, or before newline at the end
(?#) Comment
(?:) Grouping without backreferences
(?=) Zero-width positive look-ahead assertion
(?!) Zero-width negative look-ahead assertion
(?>) Nested anchored sub-regexp stops backtracking
(?imx-imx) Turns on/off imx options for rest of regexp
(?imx-imx:…) Turns on/off imx options, localized in group # '…' indicates added
regex pattern
———————————————————————————————————————————————————————————————————————————————————
—————————————————
PERL-STYLE PATTERN EXTENSIONS : BBEdit Documentation : '…' indicates added regex
pattern
———————————————————————————————————————————————————————————————————————————————————
—————————————————
Extension Meaning
———————————————————————————————————————————————————————————————————————————————————
—————————————————
(?:…) Cluster-only parentheses, no capturing
(?#…) Comment, discard all text between the parentheses
(?imsx-imsx) Enable/disable pattern modifiers
(?imsx-imsx:…) Cluster-only parens with modifiers
(?=…) Positive lookahead assertion
(?!…) Negative lookahead assertion
(?<=…) Positive lookbehind assertion
(?<!…) Negative lookbehind assertion
(?()…|…) Match with if-then-else
(?()…) Match with if-then
(?>…) Match non-backtracking subpattern (“once-only”)
(?R) Recursive pattern
———————————————————————————————————————————————————————————————————————————————————
—————————————————
POSITIONAL ASSERTIONS (duplicatation of above)
———————————————————————————————————————————————————————————————————————————————————
—————————————————
———————————————————————————————————————————————————————————————————————————————————
—————————————————
SPECIAL CHARACTER CLASSES (POSIX standard except where 'Perl Extension' is
indicated):
———————————————————————————————————————————————————————————————————————————————————
—————————————————
CLASS MEANING
———————————————————————————————————————————————————————————————————————————————————
—————————————————
[[:alnum:]] Alpha-numeric characters
[[:alpha:]] Alphabetic characters
[[:ascii:]] Character codes 0-127 # Perl Extension
[[:blank:]] Horizontal whitespace
[[:cntrl:]] Control characters
[[:digit:]] Decimal digits (same as \d)
[[:graph:]] Printing characters, excluding spaces
[[:lower:]] Lower case letters
[[:print:]] Printing characters, including spaces
[[:punct:]] Punctuation characters
[[:space:]] White space (same as \s)
[[:upper:]] Upper case letters
[[:word:]] Word characters (same as \w) # Perl Extension
[[:xdigit:]] Hexadecimal digits
[[:alpha:][:digit:]]
[[:^digit:]]+
———————————————————————————————————————————————————————————————————————————————————
—————————————————
CONDITIONAL SUBPATTERNS
———————————————————————————————————————————————————————————————————————————————————
—————————————————
if-then: (?(condition)yes-pattern)
if-then-else: (?(condition)yes-pattern|no-pattern)
if-then: (?P<NAME>(condition)yes-pattern)
if-then-else: (?P<NAME>(condition)yes-pattern|no-pattern)
———————————————————————————————————————————————————————————————————————————————————
—————————————————
REVISION NOTES:
———————————————————————————————————————————————————————————————————————————————————
—————————————————
2016/02/29 17:23
\G metacharacter added.
http://userguide.icu-project.org/strings/regexp#TOC-Regular-Expression-
Metacharacters
———————————————————————————————————————————————————————————————————————————————————
—————————————————