正则表达式用于匹配名字后面没有空格的名字

By simon at 2019-05-16 • 0人收藏 • 25人看过

我想匹配一个名字,其首字母大写后面跟着其他字母字符,但没有空格,所以基本上是一个名字,比如: Kevin。

我有以下的尝试,但似乎并不奏效:

"([ A-Z ] w +)(^  s)"
3 个回复 | 最后更新于 2019-05-16
2019-05-16   #1

后面不跟任何东西都可以简单地用 $char 限定。 也许,这个短语就足够了:

([ A-Z ][ A-Z ] +) $

如果您希望可以用 ^ char 绑定它:

^ ([ A-Z ][ A-Z ] +) $

你也可以删除捕获组,如果你想,它仍然会匹配。

[ A-Z ][ A-Z ] + $

Regex

如果这不是你想要的表达式,你可以修改 / 改变你的表达式Regex101. com.

正则电路

你可以把你的表情形象化杰克斯,伊姆:

演示 JavaScript

Const regex / ([ A-Z ][ A-Z ] +) $/ gm; const str'Kevin'; const subst'$1'; / / / 替换值将包含在 result 变量 const result str.replace (regex,subst) ; console.log ('Substitution result:',result) ;
2019-05-16   #2

我会使用([ A-Z ][ A-Z ] +) $艾玛用过的

这个 RegEx 将获得每个条目的第一个名称,即使条目只有第一个名称,也可以工作

2019-05-16   #3

编辑: 更新包括首字母大写后的任何单词字符。

试着像下面这样负面的看待:

([ A-Z ] w +  b (? ! S)

在上面的例子中,什么查找结尾的单词边界(?! S)如果正则表达式找到一个空格,它就会失败。 这种方法与已接受的方法的主要区别在于,当设置多行标志时,它也将接收新行并失败。

像往常一样,这取决于您的用例。

工作范例:

Const matchName / ([ A-Z ] w +  b (? ! / console.log (matchName.test ("Kevin")) / false console.log (matchName.test ("Kevin")) / true console.log (matchName.test ("Kevin")) / true console.log (matchName.test ("Kevin")) / false console.log (name.test ("Kevin")) / true console.log ("nammatche.test ("Kevin")) / false

登录后方可回帖

Loading...