- 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 (7)

Sponsor

Jamstack at Scale

/

^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,25}$

/

gm

^ asserts position at start of a line

Positive Lookahead

(?=.*?[A-Z])

Assert that the Regex below matches

.

matches any character (except for line terminators)*? matches the previous token between zero and unlimited times, as few times as possible, expanding as needed (lazy)

Match a single character present in the list below

[A-Z]

A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive)

Positive Lookahead

(?=(.*[a-z]){1,})

Assert that the Regex below matches

1st Capturing Group

(.*[a-z]){1,}

{1,} matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)

A repeated capturing group will only capture the last iteration. Put a capturing group around the repeated group to capture all iterations or use a non-capturing group instead if you're not interested in the data

.

matches any character (except for line terminators)* matches the previous token between zero and unlimited times, as many times as possible, giving back as needed (greedy)

Match a single character present in the list below

[a-z]

a-z matches a single character in the range between a (index 97) and z (index 122) (case sensitive)

Positive Lookahead

(?=(.*[\d]){1,})

Assert that the Regex below matches

2nd Capturing Group

(.*[\d]){1,}

{1,} matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)

A repeated capturing group will only capture the last iteration. Put a capturing group around the repeated group to capture all iterations or use a non-capturing group instead if you're not interested in the data

.

matches any character (except for line terminators)* matches the previous token between zero and unlimited times, as many times as possible, giving back as needed (greedy)

Match a single character present in the list below

[\d]

\d matches a digit (equivalent to [0-9])

Positive Lookahead

(?=(.*[\W]){1,})

Assert that the Regex below matches

3rd Capturing Group

(.*[\W]){1,}

{1,} matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)

A repeated capturing group will only capture the last iteration. Put a capturing group around the repeated group to capture all iterations or use a non-capturing group instead if you're not interested in the data

.

matches any character (except for line terminators)* matches the previous token between zero and unlimited times, as many times as possible, giving back as needed (greedy)

Match a single character present in the list below

[\W]

\W matches any non-word character (equivalent to [^a-zA-Z0-9_])

Negative Lookahead

(?!.*\s)

Assert that the Regex below does not match

.

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

.

matches any character (except for line terminators){8,25} matches the previous token between 8 and 25 times, as many times as possible, giving back as needed (greedy)

$ 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)

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

/

/

gm

Please wait while the app is loading...