我檢查了這個論壇的問題的答案,但無法找到。請專家幫忙。如何使正則表達式模式的某些部分有條件?
我有一個問題來驗證字符串說的第一個名字。我得到了一組字符串需要遵守的規則,並且需要用正則表達式確認相同的需求。我寫了一個模式。除了一個規則,我的模式會尊重其他所有內容。我列出以下
([A-Za-z]+[-'!` ]?)*
我的正則表達式我檢查的字符串說這需要啓動一個字母,可以有任何一個名字或姓氏 - 這些(或或'或'或空格!) 5個字符只有一個,如果有第二個字。如果一個名字有兩個單詞之間的空格,那麼它就OK了。一些例子
List of Valid Names
TIMOTHY
JONATHON
PATRICK
B`ELLA
SUZY JANE - Only one space allowed
SUZY-JANE
List of Invalid Ones
T~ELLA - Because this ~ is not part of regex
SUZY - JANE - No space allowed between hyphens
SUZY JANE - 2 spaces betweeb words not allowed
GRACO&LAME - & is not allowed
我的正則表達式通過了上述所有條件但是當名稱以任何一個特殊字符結束時失敗。例如,如果我給約翰或約翰或約翰!或約翰或約翰(與s空格在最後)這些是無效的,但我的正則表達式不能夠處理它
有人可以告訴我如何編寫條件正則表達式嗎?如果只有一個字,那麼正則表達式模式必須允許輸入這些特殊字符。
謝謝您的1str位置。這一個工作與一些小的調整。 – Shiv 2011-03-27 02:23:54