0

パターンは、単語と大文字の文字と一致する必要があります。

単語はで区切られます[ ]+

しかし、最後の言葉はその後にあるべきではありません[ ]

単語数に制限はありません。

私はなんとかやった:(http://regexr.com?32s1h

^([A-Z]{1}[a-z]+([a-z]+)?[ ]+)+$

//Xav Tvc Dcc_最後のスペースに注意してください

しかし、Xav Tvc Dcc

正規表現を修正するにはどうすればよいですか?

4

3 に答える 3

1

最後にスペースが続かない単語を要求します:

^([A-Z]{1}[a-z]+([a-z]+)?[ ]+)*[A-Z]{1}[a-z]+([a-z]+)?$

クイックPowerShellテスト:

PS Home:> 'Xav Tvc Dcc ','Xav Tvc Dcc' -match '^([A-Z]{1}[a-z]+([a-z]+)?[ ]+)*[A-Z]{1}[a-z]+([a-z]+)?$'|%{"<$_>"}
<Xav Tvc Dcc>

正規表現を変更することによって発生する可能性のあるエラーが心配な場合は、いつでもその場で作成できます。

var word = "([A-Z]{1}[a-z]+([a-z]+)";
var regex = string.Format("^({0}?[ ]+){0}$", word);

または、使用する言語に類似しています。

于 2012-11-19T19:54:01.253 に答える
1

最後の単語の後ろのスペースがオプションの場合は、正規表現パターンを使用します

^(?:[A-Z][a-z]*(?:[ ]+|$))+$

...そして、最後の単語の後ろにスペースがあってはならない場合は、

^(?:[A-Z][a-z]*(?:[ ]+(?=.)|$))+$
于 2012-11-19T20:11:27.160 に答える
0

このようなことをしてみませんか:

^([A-Z]{1}[a-z]+\s?)*

ここに表示

その後、トリム操作を実行して末尾のスペースを削除しますか?

于 2012-11-19T21:13:58.907 に答える