所以第一次尝试提出正则表达式验证,我有点困惑。用户填写表单的“名称”部分,如下所示:
Lastname, firstname (department).
但它也可能是
lastname-hyphenedname, firstname (some department).
或沿着这些方向的任何事情。我很难找到一个用括号括起来的表达式和带连字符的各种名称格式。有人碰巧知道这个的快速表达吗?
答案 0 :(得分:3)
^([A-Za-z]+([-']?|\s+))*[A-Za-z]+,\s*([A-Za-z]+([-']?|\s+))*[A-Za-z]+\s*(\([A-Za-z\s]+\))?$
可能包含一个或多个连字符部分或部分的名称,用空格或',然后是逗号,可能是一些空格,然后是名字(可能带有连字符或空格或'),也许是一些空格,然后(名称)括号中的空格)。 PCRE。
答案 1 :(得分:0)
使用pcre regex,你可以这样做:
^(?i)([a-z]+(?:[ '-][a-z]+)*), (?1) \([^)]+\)\.$
但你可以限制更多。