- Save Regexctrl+s
- Go to library entry

- PCRE2 (PHP >=7.3)
- PCRE (PHP <7.3)
- ECMAScript (JavaScript)
- Python
- Golang
- Java 8

- Match
- Substitution
- List
- Unit Tests

Sponsor

Jamstack at Scale

/

^(?:(\d+)\sYears?)?,?\s?(?:and\s)?(?:(\d+)\sMonths?)?,?\s?(?:and\s)?(?:(\d+)\sDays?)?$

/

gmi

^ asserts position at start of a line

Non-capturing group

(?:(\d+)\sYears?)?

? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)

1st Capturing Group

(\d+)

\d

matches a digit (equivalent to [0-9])+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)

\s matches any whitespace character (equivalent to [\r\n\t\f\v ])

Year

matches the characters Year literally (case insensitive)s

matches the character s with index 115,

matches the character , with index 44\s

matches any whitespace character (equivalent to [\r\n\t\f\v ])? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)

Non-capturing group

(?:and\s)?

? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)

and

matches the characters and literally (case insensitive)\s matches any whitespace character (equivalent to [\r\n\t\f\v ])

Non-capturing group

(?:(\d+)\sMonths?)?

2nd Capturing Group

(\d+)

\d

matches a digit (equivalent to [0-9])+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)

\s matches any whitespace character (equivalent to [\r\n\t\f\v ])

Month

matches the characters Month literally (case insensitive)s

matches the character s with index 115,

matches the character , with index 44\s

matches any whitespace character (equivalent to [\r\n\t\f\v ])Non-capturing group

(?:and\s)?

and

matches the characters and literally (case insensitive)\s matches any whitespace character (equivalent to [\r\n\t\f\v ])

Non-capturing group

(?:(\d+)\sDays?)?

3rd Capturing Group

(\d+)

\d

matches a digit (equivalent to [0-9])+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)

\s matches any whitespace character (equivalent to [\r\n\t\f\v ])

Day

matches the characters Day literally (case insensitive)s

matches the character s with index 115$ asserts position at the end of a line

Global pattern flags

g modifier: **g**lobal. All matches (don't return after first match)

m modifier: **m**ulti line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string)

i modifier: **i**nsensitive. Case insensitive match (ignores case of [a-zA-Z])

Your regular expression does not match the subject string.Try launching the debugger to find out why.

/

/

gmi

Please wait while the app is loading...