OLD | NEW |
(Empty) | |
| 1 RE2 regular expression syntax reference |
| 2 ------------------------------------- |
| 3 |
| 4 Single characters: |
| 5 . any character, including newline (s=true) |
| 6 [xyz] character class |
| 7 [^xyz] negated character class |
| 8 \d Perl character class |
| 9 \D negated Perl character class |
| 10 [:alpha:] ASCII character class |
| 11 [:^alpha:] negated ASCII character class |
| 12 \pN Unicode character class (one-letter name) |
| 13 \p{Greek} Unicode character class |
| 14 \PN negated Unicode character class (one-letter name) |
| 15 \P{Greek} negated Unicode character class |
| 16 |
| 17 Composites: |
| 18 xy «x» followed by «y» |
| 19 x|y «x» or «y» (prefer «x») |
| 20 |
| 21 Repetitions: |
| 22 x* zero or more «x», prefer more |
| 23 x+ one or more «x», prefer more |
| 24 x? zero or one «x», prefer one |
| 25 x{n,m} «n» or «n»+1 or ... or «m» «x», prefer more |
| 26 x{n,} «n» or more «x», prefer more |
| 27 x{n} exactly «n» «x» |
| 28 x*? zero or more «x», prefer fewer |
| 29 x+? one or more «x», prefer fewer |
| 30 x?? zero or one «x», prefer zero |
| 31 x{n,m}? «n» or «n»+1 or ... or «m» «x», prefer fewer |
| 32 x{n,}? «n» or more «x», prefer fewer |
| 33 x{n}? exactly «n» «x» |
| 34 x{} (== x*) NOT SUPPORTED vim |
| 35 x{-} (== x*?) NOT SUPPORTED vim |
| 36 x{-n} (== x{n}?) NOT SUPPORTED vim |
| 37 x= (== x?) NOT SUPPORTED vim |
| 38 |
| 39 Possessive repetitions: |
| 40 x*+ zero or more «x», possessive NOT SUPPORTED |
| 41 x++ one or more «x», possessive NOT SUPPORTED |
| 42 x?+ zero or one «x», possessive NOT SUPPORTED |
| 43 x{n,m}+ «n» or ... or «m» «x», possessive NOT SUPPORTED |
| 44 x{n,}+ «n» or more «x», possessive NOT SUPPORTED |
| 45 x{n}+ exactly «n» «x», possessive NOT SUPPORTED |
| 46 |
| 47 Grouping: |
| 48 (re) numbered capturing group |
| 49 (?P<name>re) named & numbered capturing group |
| 50 (?<name>re) named & numbered capturing group NOT SUPPORTED |
| 51 (?'name're) named & numbered capturing group NOT SUPPORTED |
| 52 (?:re) non-capturing group |
| 53 (?flags) set flags within current group; non-capturing |
| 54 (?flags:re) set flags during re; non-capturing |
| 55 (?#text) comment NOT SUPPORTED |
| 56 (?|x|y|z) branch numbering reset NOT SUPPORTED |
| 57 (?>re) possessive match of «re» NOT SUPPORTED |
| 58 re@> possessive match of «re» NOT SUPPORTED vim |
| 59 %(re) non-capturing group NOT SUPPORTED vim |
| 60 |
| 61 Flags: |
| 62 i case-insensitive (default false) |
| 63 m multi-line mode: ^ and $ match begin/end line in addition to begin/end t
ext (default false) |
| 64 s let «.» match «\n» (default false) |
| 65 U ungreedy: swap meaning of «x*» and «x*?», «x+» and «x+?», etc (default f
alse) |
| 66 Flag syntax is «xyz» (set) or «-xyz» (clear) or «xy-z» (set «xy», clear «z»). |
| 67 |
| 68 Empty strings: |
| 69 ^ at beginning of text or line («m»=true) |
| 70 $ at end of text (like «\z» not «\Z») or line («m»=true) |
| 71 \A at beginning of text |
| 72 \b at word boundary («\w» on one side and «\W», «\A», or «\z» on the other) |
| 73 \B not a word boundary |
| 74 \G at beginning of subtext being searched NOT SUPPORTED pcre |
| 75 \G at end of last match NOT SUPPORTED perl |
| 76 \Z at end of text, or before newline at end of text NOT SUPPORTED |
| 77 \z at end of text |
| 78 (?=re) before text matching «re» NOT SUPPORTED |
| 79 (?!re) before text not matching «re» NOT SUPPORTED |
| 80 (?<=re) after text matching «re» NOT SUPPORTED |
| 81 (?<!re) after text not matching «re» NOT SUPPORTED |
| 82 re& before text matching «re» NOT SUPPORTED vim |
| 83 re@= before text matching «re» NOT SUPPORTED vim |
| 84 re@! before text not matching «re» NOT SUPPORTED vim |
| 85 re@<= after text matching «re» NOT SUPPORTED vim |
| 86 re@<! after text not matching «re» NOT SUPPORTED vim |
| 87 \zs sets start of match (= \K) NOT SUPPORTED vim |
| 88 \ze sets end of match NOT SUPPORTED vim |
| 89 \%^ beginning of file NOT SUPPORTED vim |
| 90 \%$ end of file NOT SUPPORTED vim |
| 91 \%V on screen NOT SUPPORTED vim |
| 92 \%# cursor position NOT SUPPORTED vim |
| 93 \%'m mark «m» position NOT SUPPORTED vim |
| 94 \%23l in line 23 NOT SUPPORTED vim |
| 95 \%23c in column 23 NOT SUPPORTED vim |
| 96 \%23v in virtual column 23 NOT SUPPORTED vim |
| 97 |
| 98 Escape sequences: |
| 99 \a bell (== \007) |
| 100 \f form feed (== \014) |
| 101 \t horizontal tab (== \011) |
| 102 \n newline (== \012) |
| 103 \r carriage return (== \015) |
| 104 \v vertical tab character (== \013) |
| 105 \* literal «*», for any punctuation character «*» |
| 106 \123 octal character code (up to three digits) |
| 107 \x7F hex character code (exactly two digits) |
| 108 \x{10FFFF} hex character code |
| 109 \C match a single byte even in UTF-8 mode |
| 110 \Q...\E literal text «...» even if «...» has punctuation |
| 111 |
| 112 \1 backreference NOT SUPPORTED |
| 113 \b backspace NOT SUPPORTED (use «\010») |
| 114 \cK control char ^K NOT SUPPORTED (use «\001» etc) |
| 115 \e escape NOT SUPPORTED (use «\033») |
| 116 \g1 backreference NOT SUPPORTED |
| 117 \g{1} backreference NOT SUPPORTED |
| 118 \g{+1} backreference NOT SUPPORTED |
| 119 \g{-1} backreference NOT SUPPORTED |
| 120 \g{name} named backreference NOT SUPPORTED |
| 121 \g<name> subroutine call NOT SUPPORTED |
| 122 \g'name' subroutine call NOT SUPPORTED |
| 123 \k<name> named backreference NOT SUPPORTED |
| 124 \k'name' named backreference NOT SUPPORTED |
| 125 \lX lowercase «X» NOT SUPPORTED |
| 126 \ux uppercase «x» NOT SUPPORTED |
| 127 \L...\E lowercase text «...» NOT SUPPORTED |
| 128 \K reset beginning of «$0» NOT SUPPORTED |
| 129 \N{name} named Unicode character NOT SUPPORTED |
| 130 \R line break NOT SUPPORTED |
| 131 \U...\E upper case text «...» NOT SUPPORTED |
| 132 \X extended Unicode sequence NOT SUPPORTED |
| 133 |
| 134 \%d123 decimal character 123 NOT SUPPORTED vim |
| 135 \%xFF hex character FF NOT SUPPORTED vim |
| 136 \%o123 octal character 123 NOT SUPPORTED vim |
| 137 \%u1234 Unicode character 0x1234 NOT SUPPORTED vim |
| 138 \%U12345678 Unicode character 0x12345678 NOT SUPPORTED vim |
| 139 |
| 140 Character class elements: |
| 141 x single character |
| 142 A-Z character range (inclusive) |
| 143 \d Perl character class |
| 144 [:foo:] ASCII character class «foo» |
| 145 \p{Foo} Unicode character class «Foo» |
| 146 \pF Unicode character class «F» (one-letter name) |
| 147 |
| 148 Named character classes as character class elements: |
| 149 [\d] digits (== \d) |
| 150 [^\d] not digits (== \D) |
| 151 [\D] not digits (== \D) |
| 152 [^\D] not not digits (== \d) |
| 153 [[:name:]] named ASCII class inside character class (== [:name:]) |
| 154 [^[:name:]] named ASCII class inside negated character class (== [:^name:]) |
| 155 [\p{Name}] named Unicode property inside character class (== \p{Name}) |
| 156 [^\p{Name}] named Unicode property inside negated character class (== \P{Nam
e}) |
| 157 |
| 158 Perl character classes: |
| 159 \d digits (== [0-9]) |
| 160 \D not digits (== [^0-9]) |
| 161 \s whitespace (== [\t\n\f\r ]) |
| 162 \S not whitespace (== [^\t\n\f\r ]) |
| 163 \w word characters (== [0-9A-Za-z_]) |
| 164 \W not word characters (== [^0-9A-Za-z_]) |
| 165 |
| 166 \h horizontal space NOT SUPPORTED |
| 167 \H not horizontal space NOT SUPPORTED |
| 168 \v vertical space NOT SUPPORTED |
| 169 \V not vertical space NOT SUPPORTED |
| 170 |
| 171 ASCII character classes: |
| 172 [:alnum:] alphanumeric (== [0-9A-Za-z]) |
| 173 [:alpha:] alphabetic (== [A-Za-z]) |
| 174 [:ascii:] ASCII (== [\x00-\x7F]) |
| 175 [:blank:] blank (== [\t ]) |
| 176 [:cntrl:] control (== [\x00-\x1F\x7F]) |
| 177 [:digit:] digits (== [0-9]) |
| 178 [:graph:] graphical (== [!-~] == [A-Za-z0-9!"#$%&'()*+,\-./:;<=>?@[\\\]^_`
{|}~]) |
| 179 [:lower:] lower case (== [a-z]) |
| 180 [:print:] printable (== [ -~] == [ [:graph:]]) |
| 181 [:punct:] punctuation (== [!-/:-@[-`{-~]) |
| 182 [:space:] whitespace (== [\t\n\v\f\r ]) |
| 183 [:upper:] upper case (== [A-Z]) |
| 184 [:word:] word characters (== [0-9A-Za-z_]) |
| 185 [:xdigit:] hex digit (== [0-9A-Fa-f]) |
| 186 |
| 187 Unicode character class names--general category: |
| 188 C other |
| 189 Cc control |
| 190 Cf format |
| 191 Cn unassigned code points NOT SUPPORTED |
| 192 Co private use |
| 193 Cs surrogate |
| 194 L letter |
| 195 LC cased letter NOT SUPPORTED |
| 196 L& cased letter NOT SUPPORTED |
| 197 Ll lowercase letter |
| 198 Lm modifier letter |
| 199 Lo other letter |
| 200 Lt titlecase letter |
| 201 Lu uppercase letter |
| 202 M mark |
| 203 Mc spacing mark |
| 204 Me enclosing mark |
| 205 Mn non-spacing mark |
| 206 N number |
| 207 Nd decimal number |
| 208 Nl letter number |
| 209 No other number |
| 210 P punctuation |
| 211 Pc connector punctuation |
| 212 Pd dash punctuation |
| 213 Pe close punctuation |
| 214 Pf final punctuation |
| 215 Pi initial punctuation |
| 216 Po other punctuation |
| 217 Ps open punctuation |
| 218 S symbol |
| 219 Sc currency symbol |
| 220 Sk modifier symbol |
| 221 Sm math symbol |
| 222 So other symbol |
| 223 Z separator |
| 224 Zl line separator |
| 225 Zp paragraph separator |
| 226 Zs space separator |
| 227 |
| 228 Unicode character class names--scripts: |
| 229 Arabic Arabic |
| 230 Armenian Armenian |
| 231 Balinese Balinese |
| 232 Bengali Bengali |
| 233 Bopomofo Bopomofo |
| 234 Braille Braille |
| 235 Buginese Buginese |
| 236 Buhid Buhid |
| 237 Canadian_Aboriginal Canadian Aboriginal |
| 238 Carian Carian |
| 239 Cham Cham |
| 240 Cherokee Cherokee |
| 241 Common characters not specific to one script |
| 242 Coptic Coptic |
| 243 Cuneiform Cuneiform |
| 244 Cypriot Cypriot |
| 245 Cyrillic Cyrillic |
| 246 Deseret Deseret |
| 247 Devanagari Devanagari |
| 248 Ethiopic Ethiopic |
| 249 Georgian Georgian |
| 250 Glagolitic Glagolitic |
| 251 Gothic Gothic |
| 252 Greek Greek |
| 253 Gujarati Gujarati |
| 254 Gurmukhi Gurmukhi |
| 255 Han Han |
| 256 Hangul Hangul |
| 257 Hanunoo Hanunoo |
| 258 Hebrew Hebrew |
| 259 Hiragana Hiragana |
| 260 Inherited inherit script from previous character |
| 261 Kannada Kannada |
| 262 Katakana Katakana |
| 263 Kayah_Li Kayah Li |
| 264 Kharoshthi Kharoshthi |
| 265 Khmer Khmer |
| 266 Lao Lao |
| 267 Latin Latin |
| 268 Lepcha Lepcha |
| 269 Limbu Limbu |
| 270 Linear_B Linear B |
| 271 Lycian Lycian |
| 272 Lydian Lydian |
| 273 Malayalam Malayalam |
| 274 Mongolian Mongolian |
| 275 Myanmar Myanmar |
| 276 New_Tai_Lue New Tai Lue (aka Simplified Tai Lue) |
| 277 Nko Nko |
| 278 Ogham Ogham |
| 279 Ol_Chiki Ol Chiki |
| 280 Old_Italic Old Italic |
| 281 Old_Persian Old Persian |
| 282 Oriya Oriya |
| 283 Osmanya Osmanya |
| 284 Phags_Pa 'Phags Pa |
| 285 Phoenician Phoenician |
| 286 Rejang Rejang |
| 287 Runic Runic |
| 288 Saurashtra Saurashtra |
| 289 Shavian Shavian |
| 290 Sinhala Sinhala |
| 291 Sundanese Sundanese |
| 292 Syloti_Nagri Syloti Nagri |
| 293 Syriac Syriac |
| 294 Tagalog Tagalog |
| 295 Tagbanwa Tagbanwa |
| 296 Tai_Le Tai Le |
| 297 Tamil Tamil |
| 298 Telugu Telugu |
| 299 Thaana Thaana |
| 300 Thai Thai |
| 301 Tibetan Tibetan |
| 302 Tifinagh Tifinagh |
| 303 Ugaritic Ugaritic |
| 304 Vai Vai |
| 305 Yi Yi |
| 306 |
| 307 Vim character classes: |
| 308 \i identifier character NOT SUPPORTED vim |
| 309 \I «\i» except digits NOT SUPPORTED vim |
| 310 \k keyword character NOT SUPPORTED vim |
| 311 \K «\k» except digits NOT SUPPORTED vim |
| 312 \f file name character NOT SUPPORTED vim |
| 313 \F «\f» except digits NOT SUPPORTED vim |
| 314 \p printable character NOT SUPPORTED vim |
| 315 \P «\p» except digits NOT SUPPORTED vim |
| 316 \s whitespace character (== [ \t]) NOT SUPPORTED vim |
| 317 \S non-white space character (== [^ \t]) NOT SUPPORTED vim |
| 318 \d digits (== [0-9]) vim |
| 319 \D not «\d» vim |
| 320 \x hex digits (== [0-9A-Fa-f]) NOT SUPPORTED vim |
| 321 \X not «\x» NOT SUPPORTED vim |
| 322 \o octal digits (== [0-7]) NOT SUPPORTED vim |
| 323 \O not «\o» NOT SUPPORTED vim |
| 324 \w word character vim |
| 325 \W not «\w» vim |
| 326 \h head of word character NOT SUPPORTED vim |
| 327 \H not «\h» NOT SUPPORTED vim |
| 328 \a alphabetic NOT SUPPORTED vim |
| 329 \A not «\a» NOT SUPPORTED vim |
| 330 \l lowercase NOT SUPPORTED vim |
| 331 \L not lowercase NOT SUPPORTED vim |
| 332 \u uppercase NOT SUPPORTED vim |
| 333 \U not uppercase NOT SUPPORTED vim |
| 334 \_x «\x» plus newline, for any «x» NOT SUPPORTED vim |
| 335 |
| 336 Vim flags: |
| 337 \c ignore case NOT SUPPORTED vim |
| 338 \C match case NOT SUPPORTED vim |
| 339 \m magic NOT SUPPORTED vim |
| 340 \M nomagic NOT SUPPORTED vim |
| 341 \v verymagic NOT SUPPORTED vim |
| 342 \V verynomagic NOT SUPPORTED vim |
| 343 \Z ignore differences in Unicode combining characters NOT SUPPORTED vim |
| 344 |
| 345 Magic: |
| 346 (?{code}) arbitrary Perl code NOT SUPPORTED perl |
| 347 (??{code}) postponed arbitrary Perl code NOT SUPPORTED perl |
| 348 (?n) recursive call to regexp capturing group «n» NOT SUPPORTED |
| 349 (?+n) recursive call to relative group «+n» NOT SUPPORTED |
| 350 (?-n) recursive call to relative group «-n» NOT SUPPORTED |
| 351 (?C) PCRE callout NOT SUPPORTED pcre |
| 352 (?R) recursive call to entire regexp (== (?0)) NOT SUPPORTED |
| 353 (?&name) recursive call to named group NOT SUPPORTED |
| 354 (?P=name) named backreference NOT SUPPORTED |
| 355 (?P>name) recursive call to named group NOT SUPPORTED |
| 356 (?(cond)true|false) conditional branch NOT SUPPORTED |
| 357 (?(cond)true) conditional branch NOT SUPPORTED |
| 358 (*ACCEPT) make regexps more like Prolog NOT SUPPORTED |
| 359 (*COMMIT) NOT SUPPORTED |
| 360 (*F) NOT SUPPORTED |
| 361 (*FAIL) NOT SUPPORTED |
| 362 (*MARK) NOT SUPPORTED |
| 363 (*PRUNE) NOT SUPPORTED |
| 364 (*SKIP) NOT SUPPORTED |
| 365 (*THEN) NOT SUPPORTED |
| 366 (*ANY) set newline convention NOT SUPPORTED |
| 367 (*ANYCRLF) NOT SUPPORTED |
| 368 (*CR) NOT SUPPORTED |
| 369 (*CRLF) NOT SUPPORTED |
| 370 (*LF) NOT SUPPORTED |
| 371 (*BSR_ANYCRLF) set \R convention NOT SUPPORTED pcre |
| 372 (*BSR_UNICODE) NOT SUPPORTED pcre |
| 373 |
OLD | NEW |