繁体   English   中英

正则表达式-在单词开头允许大写字母

[英]Regex - Allow capital letters just at the beginning of words

我必须检查单词开头是否存在大写字母。

我的正则表达式现在看起来像这样: /^([A-ZÁÉÚŐÓÜÖÍ]([a-záéúőóüöí]*\\s?))+$/

开头的单词可以很好地工作,但是如果问题不在单词的开头,那就失败了。 例如: John JohnJ得到了验证。

我应该在正则表达式中替换什么才能正常工作?

在您的正则表达式模式中,空格是可选的,允许使用JJohnJohnJ类的组合-关键是使其在单词之间成为必需。 有两种方法可以做到这一点:

推出您的模式:

/^[A-ZÁÉÚŐÓÜÖÍ][a-záéúőóüöí]*(?:\s[A-ZÁÉÚŐÓÜÖÍ][a-záéúőóüöí]*)*$/

或在您的样式中留出所需的空间,但也可以将其作为行尾(尽管这允许尾随空格)。

/^(?:[A-ZÁÉÚŐÓÜÖÍ][a-záéúőóüöí]*(?:\s|$))+$/

在这两种模式中,我都删除了一些多余的原始组,并将所有组都变成了非捕获组。

您可以这样做: /^([A-ZÁÉÚŐÓÜÖÍ]{0,1}([a-záéúőóüöí]*\\s?))+$/

使用{a,b}a是它将匹配的最少字符,而b是它将匹配的最多字符。

如果始终始终以大写字母开头,则可以简单地使用: /^([A-ZÁÉÚŐÓÜÖÍ]{1}([a-záéúőóüöí]*\\s?))+$/

在上述情况下, {c}c是它将匹配的确切字符数。

这是具有良好信息的资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM