Regex
Regex
	
	
	Categories:
Tool
Test
Visualizer
- Regexper
 - Regulex:JavaScript Regular Expression Visualizer
 - Online Regex tester and visualizer - Python, PHP, Ruby, JavaScript, Java
 
Common Regular Expression
| Item | Regex | 
|---|---|
| ip address | \d+\.\d+\.\d+\.\d+ | 
| Chinese | [\u4e00-\u9fa5] | 
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* | 
|
| Zipcode | \d{3}((-)?\d{2})? | 
| URL | /^http://[a-za-z0-9]+.[a-za-z0-9]+[/=?%-&_~@[]':+!]*([^<>""])*$/ | 
| cellphone | [0-9]{4}\-[0-9]{3}\-[0-9]{3} | 
| ipv4 cidr | ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))$ \ | 
| ipv6 cidr | ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(\/(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))$ | 
Regular Expression Cheet sheet
| Description | Keyword | 
|---|---|
| Newline | \n | 
| Carriage return | \r | 
| Tab | \t | 
| Null character | \0 | 
| A single character of: a, b or c | [abc] | 
| A character except: a, b or c | [^abc] | 
| A character in the range: a-z | [a-z] | 
| A character not in the range: a-z | [^a-z] | 
| A character in the range: a-z or A-Z | [a-zA-Z] | 
| Letters and digits | [[:alnum:]] | 
| Letters | [[:alpha:]] | 
| ASCII codes 0-127 | [[:ascii:]] | 
| Space or tab only | [[:blank:]] | 
| Control characters | [[:cntrl:]] | 
| Decimal digits | [[:digit:]] | 
| Visible characters (not space) | [[:graph:]] | 
| Lowercase letters | [[:lower:]] | 
| Visible characters | [[:print:]] | 
| Visible punctuation characters | [[:punct:]] | 
| Whitespace | [[:space:]] | 
| Uppercase letters | [[:upper:]] | 
| Word characters | [[:word:]] | 
| Hexadecimal digits | [[:xdigit:]] | 
| Start of word | [[:<:]] | 
| End of word | [[:>:]] | 
| Any single character | . | 
| Alternate - match either a or b | a|b | 
| Any whitespace character | \s | 
| Any non-whitespace character | \S | 
| Any digit | \d | 
| Any non-digit | \D | 
| Any word character | \w | 
| Any non-word character | \W | 
| Any Unicode sequences, linebreaks included | \X | 
| Match one data unit | \C | 
| Unicode newlines | \R | 
| Match anything but a newline | \N | 
| Vertical whitespace character | \v | 
| Negation of \v | \V | 
| Horizontal whitespace character | \h | 
| Negation of \h | \H | 
| Reset match | \K | 
| Match subpattern number # | \# | 
| Unicode property X | \pX | 
| Unicode property or script category | \p{...} | 
| Negation of \pX | \PX | 
| Negation of \p | \P{...} | 
| Quote; treat as literals | \Q...\E | 
Match subpattern name | 
\k{name} | 
Match subpattern name | 
\k<name> | 
Match subpattern name | 
\k'name' | 
| Match nth subpattern | \gn | 
| Match nth subpattern | \g{n} | 
| Match text the nth relative previous subpattern matched | \g{-n} | 
| Match expression defined in the nth capture group | \g<n> | 
| Match expression defined in the nth relative upcoming capture group. | \g<+n> | 
| Match expression defined in the nth capture group. | \g'n' | 
| Match expression defined in the nth relative upcoming subpattern | \g'+n' | 
Match previously-named capture group letter | 
\g{letter} | 
| Match expression defined in the capture group named “letter” | \g<letter> | 
Match expression defined in the named capture group letter | 
\g'letter' | 
| Hex character YY | \xYY | 
| Hex character YYYY | \x{YYYY} | 
| Octal character ddd | \ddd | 
| Control character Y | \cY | 
| Backspace character | [\b] | 
| Makes any character literal | \ | 
| Match everything enclosed | (?:...) | 
| Capture everything enclosed | (...) | 
| Atomic group (non-capturing) | (?>...) | 
| Duplicate/reset subpattern group number | (?|...) | 
| Comment group | (?#...) | 
| Named Capturing Group | (?'name'...) | 
| Named Capturing Group | (?<name>...) | 
| Named Capturing Group | (?P<name>...) | 
| Inline modifiers | (?imsxUJnxx) | 
| Localized inline modifiers | (?imsxUJnxx:...) | 
| Conditional statement | (?(1)yes|no) | 
| Conditional statement | (?(R)yes|no) | 
| Recursive Conditional statement | (?(R#)yes|no) | 
| Conditional statement | (?(R)name)yes|no) | 
| Lookahead conditional | (?(?=...)yes|no) | 
| Lookbehind conditional | (?(?<=...)yes|no) | 
| Recurse entire pattern | (?R) | 
| Match expression defined in capture group 1 | (?1) | 
| Match expression defined in the first relative capture group | (?+1) | 
Match expression defined in capture group name | 
(?)name) | 
Match subpattern name | 
(?P=name) | 
| Match expression defined in the capture group “{name}” | (?P>name) | 
| Pre-define patterns before using them | (?(DEFINE)...) | 
| Positive Lookahead | (?=...) | 
| Negative Lookahead | (?!...) | 
| Positive Lookbehind | (?<=...) | 
| Negative Lookbehind | (?<!...) | 
| Control verb | (*ACCEPT) | 
| Control verb | (*FAIL) | 
| Control verb | (*MARK:NAME) | 
| Control verb | (*COMMIT) | 
| Control verb | (*PRUNE) | 
| Control verb | (*SKIP) | 
| Control verb | (*THEN) | 
| Pattern modifier | (*UTF) | 
| Pattern modifier | (*UTF8) | 
| Pattern modifier | (*UTF16) | 
| Pattern modifier | (*UTF32) | 
| Pattern modifier | (*UCP) | 
| Line break modifier | (*CR) | 
| Line break modifier | (*LF) | 
| Line break modifier | (*CRLF) | 
| Line break modifier | (*ANYCRLF) | 
| Line break modifier | (*ANY) | 
| Empty match modifier | (*NOTEMPTY) | 
| Empty match modifier | (*NOTEMPTY_ATSTART) | 
| JIT Modifier | (*NO_JIT) | 
| Line break modifier | \R | 
| Line break modifier | (*BSR_ANYCRLF) | 
| Line break modifier | (*BSR_UNICODE) | 
| Regex engine modifier | (*LIMIT_MATCH=x) | 
| Regex engine modifier | (*LIMIT_RECURSION=d) | 
| Regex engine modifier | (*NO_AUTO_POSSESS) | 
| Regex engine modifier | (*NO_START_OPT) | 
| Zero or one of a | a? | 
| Zero or more of a | a* | 
| One or more of a | a+ | 
| Exactly 3 of a | a{3} | 
| 3 or more of a | a{3,} | 
| Between 3 and 6 of a | a{3,6} | 
| Greedy quantifier | a* | 
| Lazy quantifier | a*? | 
| Possessive quantifier | a*+ | 
| Start of match | \G | 
| Start of string | ^ | 
| End of string | $ | 
| Start of string | \A | 
| End of string | \Z | 
| Absolute end of string | \z | 
| A word boundary | \b | 
| Non-word boundary | \B | 
| Global | g | 
| Multiline | m | 
| Case insensitive | i | 
| Ignore whitespace / verbose | x | 
| Single line | s | 
| Unicode | u | 
| eXtra | X | 
| Ungreedy | U | 
| Anchor | A | 
| Duplicate group names | J | 
| Contents in capture group 1 | $1 | 
Contents in capture group foo | 
${foo} | 
| Hexadecimal replacement values | \x20 | 
| Hexadecimal replacement values | \x{06fa} | 
| Insert a tab | \t | 
| Insert a carriage return | \r | 
| Insert a newline | \n | 
| Insert a form-feed | \f | 
| Uppercase Transformation | \U | 
| Lowercase Transformation | \L | 
| Terminate any Transformation | \E |