Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java
  • .NET 7.0 (C#)
  • Rust
  • PCRE (Legacy)
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests
Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • 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]
  • 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
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • 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}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression
Processing...

Test String

Code Generator

Generated Code

$re = '/^(([\+\-NnSs])?([0-8]?\d|90)[°˚º^~*\s\-_]+([0-5]?\d|\d)[\'′\s\-_]+([0-5]?\d|\d)([.]\d*)?["¨˝\s\-_]*([\+\-NnSs])?)([\s\-_:|,;\/\\\\]+)(([\+\-EeWw])?([0]?\d?\d|1[0-7]\d|180)[°˚º^~*\s\-_]+([0-5]\d|\d)[\'′\s\-_]+([0-5]?\d|\d)([.]\d*)?["¨˝\s_]*([\+\-EeWw])?)[\s]*$/m'; $str = '+0 0 0 0 0 0 0 0 0+ 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0+ -0 0 0 0 0 0 0 0 0- 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0- +0 0 0 +0 0 0 0 0 0+ 0 0 0+ 0 0 0+ 0 0 0 0 0 0 0 0 0+ // check divider 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|0 0 0 0 0 0:0 0 0 0 0 0,0 0 0 0 0 0;0 0 0 0 0 0 | 0 0 0 0 0 0 , 0 0 0 0 0 0 - 0 0 0 0 0 0 : 0 0 0 0 0 0 ; 0 0 0 0 0 0 ;; 0 0 0 0 0 0 || 0 0 0 0 0 0 \\ 0 0 0 0 0 0 / 0 0 0 0 0 0N 0 0 0 0 0 0n 0 0 0 0 0 0S 0 0 0 0 0 0s 0 0 0 0 0 0N 0 0 0W 0 0 0n 0 0 0w 0 0 0S 0 0 0e 0 0 0s 0 0 0E 0 0 0 0 0 0W 0 0 0 0 0 0w 0 0 0 0 0 0e 0 0 0 0 0 0E //check + and - signs +0 0 0 0 0 0 0 0 0+ 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0+ -0 0 0 0 0 0 0 0 0- 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0- +0 0 0 +0 0 0 0 0 0+ 0 0 0+ 0 0 0+ 0 0 0 0 0 0 0 0 0+ // check all zeros 00 00 00 N 000 00 00 E 00 00 00 N 000 00 0 E 00 00 00 N 000 0 00 E 00 00 00 N 000 0 0 E 00 00 00 N 00 00 00 E 00 00 00 N 00 00 0 E 00 00 00 N 00 0 0 E 00 00 00 N 0 00 00 E 00 00 00 N 0 0 00 E 00 00 00 N 0 0 0 E 00 00 0 N 000 00 00 E 00 00 0 N 000 00 0 E 00 00 0 N 000 0 00 E 00 00 0 N 000 0 0 E 00 00 0 N 00 00 00 E 00 00 0 N 00 00 0 E 00 00 0 N 00 0 0 E 00 00 0 N 0 00 00 E 00 00 0 N 0 0 00 E 00 00 0 N 0 0 0 E 00 0 00 N 000 00 00 E 00 0 00 N 000 00 0 E 00 0 00 N 000 0 00 E 00 0 00 N 000 0 0 E 00 0 00 N 00 00 00 E 00 0 00 N 00 00 0 E 00 0 00 N 00 0 0 E 00 0 00 N 0 00 00 E 00 0 00 N 0 0 00 E 00 0 00 N 0 0 0 E 0 00 00 N 000 00 00 E 0 00 00 N 000 00 0 E 0 00 00 N 000 0 00 E 0 00 00 N 000 0 0 E 0 00 00 N 00 00 00 E 0 00 00 N 00 00 0 E 0 00 00 N 00 0 0 E 0 00 00 N 0 00 00 E 0 00 00 N 0 0 00 E 0 00 00 N 0 0 0 E 0 00 0 N 000 00 00 E 0 00 0 N 000 00 0 E 0 00 0 N 000 0 00 E 0 00 0 N 000 0 0 E 0 00 0 N 00 00 00 E 0 00 0 N 00 00 0 E 0 00 0 N 00 0 0 E 0 00 0 N 0 00 00 E 0 00 0 N 0 0 00 E 0 00 0 N 0 0 0 E 0 0 00 N 000 00 00 E 0 0 00 N 000 00 0 E 0 0 00 N 000 0 00 E 0 0 00 N 000 0 0 E 0 0 00 N 00 00 00 E 0 0 00 N 00 00 0 E 0 0 00 N 00 0 0 E 0 0 00 N 0 00 00 E 0 0 00 N 0 0 00 E 0 0 00 N 0 0 0 E //invalid 0 0 0 N 000 00 E 0 0 0 N 000 E 0 0 N 0 0 00 E 0 N 0 0 0E // check valid latitude deg vaules 01 00 00 N 000 0 0 E 1 00 00 N 000 0 0 E 09 00 00 N 000 0 0 E 9 00 00 N 000 0 0 E 89 00 00 N 000 0 0 E 90 00 01 N 000 0 0 E +00 00 00 N 000 0 0 E +0 00 00 N 000 0 0 E +01 00 00 N 000 0 0 E +1 00 00 N 000 0 0 E +09 00 00 N 000 0 0 E +9 00 00 N 000 0 0 E +89 00 00 N 000 0 0 E +90 00 01 N 000 0 0 E -00 00 00 N 000 0 0 E -0 00 00 N 000 0 0 E -01 00 00 N 000 0 0 E -1 00 00 N 000 0 0 E -09 00 00 N 000 0 0 E -9 00 00 N 000 0 0 E -89 00 00 N 000 0 0 E -90 00 01 N 000 0 0 E 00 00 00 000 0 0 +0 00 00 000 0 0 +01 00 00 000 0 0 +1 00 00 000 0 0 +09 00 00 000 0 0 +9 00 00 000 0 0 +89 00 00 000 0 0 +90 00 01 000 0 0 //invalid 91 00 01 N 000 0 0 E 000 00 01 N 000 0 0 E 089 00 01 N 000 0 0 E // check valid latitude minute vaules 00 01 00 N 000 0 0 E 00 1 00 N 000 0 0 E 00 09 00 N 000 0 0 E 00 9 00 N 000 0 0 E 00 59 00 N 000 0 0 E //invalid 00 60 00 N 000 0 0 E 00 59.55 00 N 000 0 0 E // check valid latitude second vaules 00 00 01 N 000 0 0 E 00 00 1 N 000 0 0 E 00 00 09 N 000 0 0 E 00 00 9 N 000 0 0 E 00 00 59 N 000 0 0 E 00 00 01.001 N 000 0 0 E 00 00 1.001 N 000 0 0 E 00 00 09.001 N 000 0 0 E 00 00 9.001 N 000 0 0 E 00 00 59.001 N 000 0 0 E //invalid 00 00 60 N 000 0 0 E 00 00 60.999 N 000 0 0 E //check valid longitute degree values 00 00 0 N 001 0 0 E 00 00 0 N 01 0 0 E 00 00 0 N 1 0 0 E 00 00 0 N 10 0 0 E 00 00 0 N 99 0 0 E 00 00 0 N 100 0 0 E 00 00 0 N 179 0 0 E 00 00 0 N 79 0 0 E 00 00 0 N 180 0 0 E 00 00 0 N 001° 0 0 E 00 00 0 N 01° 0 0 E 00 00 0 N 1° 0 0 E 00 00 0 N 10° 0 0 E 00 00 0 N 99° 0 0 E 00 00 0 N 100° 0 0 E 00 00 0 N 179° 0 0 E 00 00 0 N 79° 0 0 E 00 00 0 N 180° 0 0 E 00 00 0 N 001˚ 0 0 E 00 00 0 N 01˚ 0 0 E 00 00 0 N 1˚ 0 0 E 00 00 0 N 10˚ 0 0 E 00 00 0 N 99˚ 0 0 E 00 00 0 N 100˚ 0 0 E 00 00 0 N 179˚ 0 0 E 00 00 0 N 79˚ 0 0 E 00 00 0 N 180˚ 0 0 E 00 00 0 N 001º 0 0 E 00 00 0 N 01º 0 0 E 00 00 0 N 1º 0 0 E 00 00 0 N 10º 0 0 E 00 00 0 N 99º 0 0 E 00 00 0 N 100º 0 0 E 00 00 0 N 179º 0 0 E 00 00 0 N 79º 0 0 E 00 00 0 N 180º 0 0 E 00 00 0 N 001^ 0 0 E 00 00 0 N 01^ 0 0 E 00 00 0 N 1^ 0 0 E 00 00 0 N 10^ 0 0 E 00 00 0 N 99^ 0 0 E 00 00 0 N 100^ 0 0 E 00 00 0 N 179^ 0 0 E 00 00 0 N 79^ 0 0 E 00 00 0 N 180^ 0 0 E 00 00 0 N 001~ 0 0 E 00 00 0 N 01~ 0 0 E 00 00 0 N 1~ 0 0 E 00 00 0 N 10~ 0 0 E 00 00 0 N 99~ 0 0 E 00 00 0 N 100~ 0 0 E 00 00 0 N 179~ 0 0 E 00 00 0 N 79~ 0 0 E 00 00 0 N 180~ 0 0 E 00 00 0 N 001* 0 0 E 00 00 0 N 01* 0 0 E 00 00 0 N 1* 0 0 E 00 00 0 N 10* 0 0 E 00 00 0 N 99* 0 0 E 00 00 0 N 100* 0 0 E 00 00 0 N 179* 0 0 E 00 00 0 N 79* 0 0 E 00 00 0 N 180* 0 0 E //invalid 00 00 0 N 181 0 0 E 00 00 0 N 1111 0 0 E 00 00 0 N 181° 0 0 E 00 00 0 N 1111° 0 0 E 00 00 0 N 181˚ 0 0 E 00 00 0 N 1111˚ 0 0 E 00 00 0 N 181º 0 0 E 00 00 0 N 1111º 0 0 E 00 00 0 N 181^ 0 0 E 00 00 0 N 1111^ 0 0 E 00 00 0 N 181~ 0 0 E 00 00 0 N 1111~ 0 0 E 00 00 0 N 181* 0 0 E 00 00 0 N 1111* 0 0 E //check valid longitute minute values 00 00 0 N 000 01 0 E 00 00 0 N 000 1 0 E 00 00 0 N 000 9 0 E 00 00 0 N 000 09 0 E 00 00 0 N 000 10 0 E 00 00 0 N 000 59 0 E 00 00 0 N 000 5 0 E 00 00 0 N 000 01\' 0 E 00 00 0 N 000 1\' 0 E 00 00 0 N 000 9\' 0 E 00 00 0 N 000 09\' 0 E 00 00 0 N 000 10\' 0 E 00 00 0 N 000 59\' 0 E 00 00 0 N 000 5\' 0 E 00 00 0 N 000 01′ 0 E 00 00 0 N 000 1′ 0 E 00 00 0 N 000 9′ 0 E 00 00 0 N 000 09′ 0 E 00 00 0 N 000 10′ 0 E 00 00 0 N 000 59′ 0 E 00 00 0 N 000 5′ 0 E //invalid 00 00 0 N 000 60 0 E 00 00 0 N 000 61 0 E 00 00 0 N 000 60\' 0 E 00 00 0 N 000 61\' 0 E 00 00 0 N 000 60′ 0 E 00 00 0 N 000 61′ 0 E // check degree symbols 0° 0\' 0" 0° 0\' 0" 0° 0\' 0" 0˚ 0\' 0" 0° 0\' 0" 0º 0\' 0" 0° 0\' 0" 0^ 0\' 0" 0° 0\' 0" 0~ 0\' 0" 0° 0\' 0" 0* 0\' 0" 0˚ 0\' 0" 0° 0\' 0" 0˚ 0\' 0" 0˚ 0\' 0" 0˚ 0\' 0" 0º 0\' 0" 0˚ 0\' 0" 0^ 0\' 0" 0˚ 0\' 0" 0~ 0\' 0" 0˚ 0\' 0" 0* 0\' 0" 0º 0\' 0" 0° 0\' 0" 0º 0\' 0" 0˚ 0\' 0" 0º 0\' 0" 0º 0\' 0" 0º 0\' 0" 0^ 0\' 0" 0º 0\' 0" 0~ 0\' 0" 0º 0\' 0" 0* 0\' 0" 0^ 0\' 0" 0° 0\' 0" 0^ 0\' 0" 0˚ 0\' 0" 0^ 0\' 0" 0º 0\' 0" 0^ 0\' 0" 0^ 0\' 0" 0^ 0\' 0" 0~ 0\' 0" 0^ 0\' 0" 0* 0\' 0" 0~ 0\' 0" 0° 0\' 0" 0~ 0\' 0" 0˚ 0\' 0" 0~ 0\' 0" 0º 0\' 0" 0~ 0\' 0" 0^ 0\' 0" 0~ 0\' 0" 0~ 0\' 0" 0~ 0\' 0" 0* 0\' 0" 0* 0\' 0" 0° 0\' 0" 0* 0\' 0" 0˚ 0\' 0" 0* 0\' 0" 0º 0\' 0" 0* 0\' 0" 0^ 0\' 0" 0* 0\' 0" 0~ 0\' 0" 0* 0\' 0" 0* 0\' 0" //check minute symbols 0° 00\' 00 000° 00\' 00" 0° 00\' 00 000° 00\' 00" 0° 00\' 00" 000° 00\' 00 0° 00\' 00" 000° 00\' 00" 0° 00′ 00 000° 00′ 00" 0° 00′ 00 000° 00′ 00" 0° 00′ 00" 000° 00′ 00 0° 00′ 00" 000° 00′ 00" 0° 00\' 00 000° 00′ 00" 0° 00\' 00 000° 00′ 00" 0° 00\' 00" 000° 00′ 00 0° 00\' 00" 000° 00′ 00" 0° 00′ 00 000° 00\' 00" 0° 00′ 00 000° 00\' 00" 0° 00′ 00" 000° 00\' 00 0° 00′ 00" 000° 00\' 00" //check second symbols 0° 00\' 00" N 000° 00\' 00" 0° 00\' 00.666" N 000° 00\' 00" E 0° 00\' 00" N 000° 00\' 00.000" E 0° 00\' 00" N 000° 00\' 00" 0° 00\' 00¨ N 000° 00\' 00¨ E 0° 00\' 00.666¨ N 000° 00\' 00¨ 0° 00\' 00¨ N 000° 00\' 00.000¨ E 0° 00\' 00¨ N 000° 00\' 00¨ E 0° 00\' 00˝ N 000° 00\' 00˝ E 0° 00\' 00.666˝ N 000° 00\' 00˝ 0° 00\' 00˝ N 000° 00\' 00.000˝ E 0° 00\' 00˝ N 000° 00\' 00˝ E //check full dms with differing spaces 0°00\'00˝N 000°00\'00˝E 0 °00\'00˝N 000°00\'00˝E 0 ° 00 \'00˝N 000°00\'00˝E 0 ° 00 \'00 ˝N 000°00\'00˝E 0 ° 00 \'00˝ N 000°00\'00˝E 0 ° 00 \'00˝ N 000 ° 00\'00˝E 0 ° 00 \'00˝ N 000 ° 00 \'00˝E 0 ° 00 \'00˝ N 000 ° 00 \' 00˝E 0 ° 00 \'00˝ N 000 ° 00 \' 00 ˝E 0 ° 00 \'00˝ N 000 ° 00 \' 00 ˝ E //check full dms prefix / suffix 0° 00\' 00˝N 000° 00\'00˝E 0° 00\' 00˝N 000° 00\'00˝ 0° 00\' 00˝ 000° 00\'00˝E N0° 00\' 00˝ E000° 00\'00˝ N0° 00\' 00˝ 000° 00\'00˝E 0° 00\' 00˝ E000° 00\'00˝ N0° 00\' 00˝N 000° 00\'00˝ 0° 00\' 00˝ E000° 00\'00˝E 0° 00\' 00˝S 000° 00\'00˝E 0° 00\' 00˝S 000° 00\'00˝ 0° 00\' 00˝ 000° 00\'00˝E S0° 00\' 00˝ E000° 00\'00˝ S0° 00\' 00˝ 000° 00\'00˝E 0° 00\' 00˝ E000° 00\'00˝ S0° 00\' 00˝S 000° 00\'00˝ 0° 00\' 00˝ E000° 00\'00˝E 0° 00\' 00˝N 000° 00\'00˝W 0° 00\' 00˝N 000° 00\'00˝ 0° 00\' 00˝ 000° 00\'00˝W N0° 00\' 00˝ W000° 00\'00˝ N0° 00\' 00˝ 000° 00\'00˝W 0° 00\' 00˝ W000° 00\'00˝ N0° 00\' 00˝N 000° 00\'00˝ 0° 00\' 00˝ W000° 00\'00˝W 0° 00\' 00˝S 000° 00\'00˝W 0° 00\' 00˝S 000° 00\'00˝ 0° 00\' 00˝ 000° 00\'00˝W S0° 00\' 00˝ W000° 00\'00˝ S0° 00\' 00˝ 000° 00\'00˝W 0° 00\' 00˝ W000° 00\'00˝ S0° 00\' 00˝S 000° 00\'00˝ 0° 00\' 00˝ E000° 00\'00˝W //invalid 0° 00\' 00˝E 000° 00\'00˝E 0° 00\' 00˝E 000° 00\'00˝W 0° 00\' 00˝W 000° 00\'00˝W 0° 00\' 00˝N 000° 00\'00˝S 0° 00\' 00˝N 000° 00\'00˝N 0° 00\' 00˝S 000° 00\'00˝S 0° 00\' 00˝W 000° 00\'00˝S 0° 00\' 00˝W 000° 00\'00˝N 0° 00\' 00˝E 000° 00\'00˝S 0° 00\' 00˝E 000° 00\'00˝N '; preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); // Print the entire match result var_dump($matches);

Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php