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。它将要求每个单词以大写字母开头,单词之间只有一个空格。它还必须拒绝任何尾随或前导空格字符。
谢谢
您的描述相当模糊,但作为一般情况,^[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}*)*$