RegEx以匹配大写单词之间的单个空格

本文关键字:之间 单个 空格 单词 RegEx | 更新日期: 2023-09-27 18:08:42

我需要一个匹配以下内容的RegEx:

"United States"     // match
"United   States"   // not match
"united States"     // not match
"United states"     // not match
"  United States"   // not match
"United States   "  // not match

e。它将要求每个单词以大写字母开头,单词之间只有一个空格。它还必须拒绝任何尾随或前导空格字符。

谢谢

RegEx以匹配大写单词之间的单个空格

您的描述相当模糊,但作为一般情况,^[A-Z][a-z]*( [A-Z][a-z]*)*$应该在没有IgnoreCase标志的情况下工作

像这样:?

^[A-Z][a-z]* [A-Z][a-z]*$

以下类似于@dotNET的回答,但它考虑了非ascii字符类:

^['p{Lu}'p{Lt}]'w*( ['p{Lu}'p{Lt}]'w*)*$

我在这里允许使用中间的非小写字符,因为在unicode中,有大量的字符类,而不仅仅是小写和大写。

要匹配严格小写中间字母的单词,

^['p{Lu}'p{Lt}]'p{Ll}*( ['p{Lu}'p{Lt}]'p{Ll}*)*$