我正在尝试为我的任务编写一个正则表达式。 句子中的每个单词都以大写字母开头,其余为小写字母。
(^[A-Z]{1}[a-z\s]+)+
例如
Java Test
-好的
Java test
-不好
JaVa Test
-不好
java Test
-不好
答案 0 :(得分:1)
您尝试过的模式也将与Java test
匹配,因为字符类[a-z\s]+
重复列出的任何字符1倍以上(包括空格),并且不会强制第二个单词以大写字符开头。 / p>
您可以在每次迭代中重复匹配大写字符的部分,然后再匹配1+小写字符。
请注意,\s
也将与换行符匹配,您可以省略{1}
^[A-Z][a-z]+(?: [A-Z][a-z]+)*$
^
字符串的开头[A-Z][a-z]+
匹配1个大写字母A-Z和1+个小写字母a-z (?:
非捕获组
[A-Z][a-z]+
匹配一个空格,1个大写字母A-Z和1+个小写字母字符a-z )*
关闭非捕获组并重复1次以上$
字符串结尾除了使用单个空格,您还可以使用\h
(在Java \\h
中)匹配1个以上的水平空格字符
答案 1 :(得分:0)