正则语法

下面整理出正则表达式的语法规则:

此处以Python为例,参考:Python Regular Expression's Cheat Sheet,正则表达式的基本语法如下:

正则表达式语法

文字版:

  • Special Characters
    • \ escape special characters
      • common char need escaple:
        • \
        • [
        • ]
        • (
        • )
        • {
        • }
        • .
        • *
        • +
        • ?
        • ^
        • $
        • |
    • . matches any character
    • ^ matches beginning of string
    • $ matches end of string
    • [5b-d] matches any chars '5', 'b', 'c' or 'd'
    • [^a-c6] matches any char except 'a', 'b', 'c' or '6'
    • R|S matches either regex R or regex S
    • () creates a capture group and indicates precedence
  • Quantifiers
    • * 0 or more (append ? for non-greedy)
    • + 1 or more (append ? for non-greedy)
    • ? 0 or 1 (append ? for non-greedy)
    • {m} exactly mm occurrences
    • {m, n} from m to n. m defaults to 0, n to infinity
    • {m, n}? from m to n, as few as possible
  • Special sequences
    • \A start of string
    • \b matches empty string at word boundary (between \w and \W)
    • \B matches empty string not at word boundary
    • \d digit
    • \D non-digit
    • \s whitespace: [ \t\n\r\f\v]
    • \S non-whitespace
    • \w alphanumeric: [0-9a-zA-Z_]
    • \W non-alphanumeric
    • \Z end of string
    • \g<id> matches a previously defined group
  • Extensions
    • (?iLmsux) Matches empty string, sets re.X flags
    • (?:...) Non-capturing version of regular parentheses
    • (?P<name>...) Creates a named capturing group
    • (?P=name) Matches whatever matched previously named group
    • (?#...) A comment; ignored.
    • (?=...) Lookahead assertion: Matches without consuming
    • (?!...) Negative lookahead assertion
    • (?<=...) Lookbehind assertion: Matches if preceded
    • (?<!...) Negative lookbehind assertion
    • (?(id)yes|no) Match 'yes' if group 'id' matched, else 'no'

results matching ""

    No results matching ""