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 |