2012-05-30 92 views
0

我想寫一個正則表達式來驗證輸入。輸入具有以下格式:期間和空間的RegEx

N. Crystal 

O. J. Faucon 

A. V. E. David 

"^[A-Z. ]*+([a-zA-Z])*$"不起作用。我怎樣才能匹配上面的例子?

+0

@KonradRudolph我認爲你的編輯修復了這個問題(在第二個'[a-zA-Z]':)之後缺少星號 – dasblinkenlight

+0

任何解決方案? plz help –

+0

嘗試Konrad的修復(即添加星號)。 – dasblinkenlight

回答

3

.NET正確地抱怨嵌套的量詞。 *+是多餘的,刪除一個。

^[A-Z. ]*([a-zA-Z])*$ 

此外,使用*這裏看起來相當直觀,除非你真的想接受空輸入。在現實中,你不期待至少有一個的人物? (我們也可以,因爲分組是沒有意義的去除多餘的括號內。)

^[A-Z. ]+[a-zA-Z]+$ 

最後,接受剛纔的一切,例如「BAR ... FOOxyz」。您可能需要更精確:

^([A-Z]\.)+[a-zA-Z]+$ 

現在第一組明確匹配的初始(即一個大寫字母后面跟着一個點和一個空格),和它匹配的多,但至少有一個。

+0

謝謝:D |但與你^ [A-Z。 ] + [a-zA-Z] + $,輸入:.A。 s正在工作,但在我的情況。第一個字符必須是大寫,後跟一個點和一個空格。必須允許的唯一格式是: N. Crystal或O. J. Faucon或A. V. E. David –

+0

它正在工作,再次thanx ^^ –