我正在处理名称,并且试图匹配“ First Last”,而不是“ First Last Middle”。我认为棘手的部分是我确实希望最后允许任何空格,而不是不允许在空格之后再加上其他任何内容。这就是我所拥有的:
^([^\s]+[\s]+)([^\s])$
这几乎可以用,但是它排除了“ First Last”(在末尾加空格),我想允许这样的草率数据输入。
答案 0 :(得分:1)
在模式结尾处,先查找零个或多个空格,然后是字符串的结尾:
^(\S+\s+)(\S+)(?=\s*$)
https://regex101.com/r/PjGPAw/1
还请注意,只要您有一个仅带有一个标记的字符集(例如\s
),就可以完全删除该字符集,而仅使用该标记。另外,\s
(即字符集[^\s]
)的取反等效于\S
,表示“除空白字符外的任何字符”,可能比{{ 1}}。