正则表达式,用于匹配单个名字字符串或带有一个空格和一个连字符的名字和姓氏字符串。
有效匹配
无效匹配
答案 0 :(得分:1)
答案 1 :(得分:1)
此模式将正确匹配您提供的示例数据(我假设您实际上只想允许空格[],而不是所有空格[
\s
],这也包括标签,换行符等):
/^[a-z]+( [a-z][a-z-]+||-[a-z]+)?$/i
尽管如此,我想知道您的样本数据中是否没有其他情况,例如:
如果需要,还需要进行一些调整来处理这些问题。
另外,我遗漏了g
和m
标志,因为这看起来像是模式验证,在这种情况下,我认为你不需要它们。如果你真的需要在多行情况下捕获这个模式的多个实例,那么你需要放回那些标志。
<强>更新强>
好的,基于其他测试数据,以下正则表达式将起作用:
/^[a-z]+-?[a-z]+( [a-z]+-?[a-z]+)?$/i
我一直觉得有一种方法可以将其削减得更多,但和
-
字符之间的复杂关系使其变得困难。
更新#2:
已更新以匹配更多样本数据。 :d
/^[a-z]+(-[a-z]+)?( [a-z]+(-[a-z]+)?)?$/i
更新#3:
好的。 。 。另一个更新,为新的“连字符”要求。 :)
/^[a-z]+(-[a-z]+( [a-z]+)?||( [a-z]+)(-[a-z]+)?)?$/i
答案 2 :(得分:0)