Please enable JavaScript to use regex101
/
^
r
e
g
e
x
[
\
-
_
]
?
1
0
1
$
/
i
Regular
Expressions
101
Regular
Expressions
101
Upgrade to Pro
Enterprise
Regular Expression
/
(?(DEFINE) (?# Definitions ) (?<valid_nameChars>[\p{L}\p{Nl}]) (?<valid_nonNameChars>[^\p{L}\p{Nl}\p{Zs}]) (?<valid_startFirstName>(?![a-z])[\p{L}']) (?<valid_upperChar>(?![a-z])\p{L}) (?<valid_nameSeparatorsSoft>[\p{Pd}']) (?<valid_nameSeparatorsHard>\p{Zs}) (?<valid_nameSeparators>(?&valid_nameSeparatorsSoft)|(?&valid_nameSeparatorsHard)) (?# Invalid combinations ) (?<invalid_startChar>^[\p{Zs}a-z]) (?<invalid_endChar>.*[^\p{L}\p{Nl}.\p{C}]$) (?<invalid_unaccompaniedSymbol>.*(?&valid_nameSeparatorsHard)(?&valid_nonNameChars)(?&valid_nameSeparatorsHard)) (?<invalid_overTwoUpper>(?:(?&valid_nameChars)*\p{Lu}){3}) (?<invalid>(?&invalid_startChar)|(?&invalid_endChar)|(?&invalid_unaccompaniedSymbol)|(?&invalid_overTwoUpper)) (?# Valid combinations ) (?<valid_name>(?:(?:(?&valid_nameChars)|(?&valid_nameSeparatorsSoft))*(?&valid_nameChars)+(?:(?&valid_nameChars)|(?&valid_nameSeparatorsSoft))*)+\.?) (?<valid_firstName>(?&valid_startFirstName)(?:\.|(?&valid_name)*)) (?<valid_multipleName>(?&valid_firstName)(?=.*(?&valid_nameSeparators)(?&valid_upperChar))(?:(?&valid_nameSeparatorsHard)(?&valid_name))+) (?<valid>(?&valid_multipleName)|(?&valid_firstName)) ) ^(?!(?&invalid))(?&valid)$
/
gmx
Unit Tests
There are no unit tests, click
here
to add some.