正则表达式 - 检查名称前后是否没有白色 space

Regex - check if no white space before and after a name

使用这个正则表达式

[A-Z]{1}[a-z]+(?<! )|[A-Z]{1}[a-z]+(?![a-z]* )

我要匹配以下项目。

# match them
AaaaBbbbCcccccDddddd

# don't match them
Aaaaa Bbbbbb
Ccccc Eeeee

在我的正则表达式中,我使用了 OR 运算符。但这仍然是错误的。到目前为止,所有项目都是匹配的。我需要一个 AND 运算符,但没找到。

您可以使用

(?<![ A-Z])[A-Z][a-z]+(?![a-z ])
(?<![\sA-Z])[A-Z][a-z]+(?![a-z\s])

参见regex demo

详情:

  • (?<![\sA-Z]) - 如果当前位置左侧有空格或大写字母,则匹配失败的负后视
  • [A-Z] - 大写字母
  • [a-z]+ - 一个或多个小写字母
  • (?![a-z\s]) - 如果当前位置右侧紧邻有空格或小写字母,则否定前瞻会导致匹配失败。