2010-09-13 24 views
1

試圖尋找一個全名的正則表達式模式,只是似乎無法找到一個。正則表達式FullName模式

理想的情況下將匹配像

Tom Franklin 
tom Franklin 
tom franklin 
tom franklin-jones 

即允許在中間1個空間和一些基本的連字符等,但多數民衆贊成。有誰知道如何做到這一點 ?

編輯:包括

René Hadron van der Ööps 
+0

奧布萊恩先生會感到失望,他的名字是無效的;) – 2010-09-13 17:16:36

+0

奧布萊恩先生需要名字:P但是第二個名字是有效的! – Tom 2010-09-13 17:17:45

+3

請不要限制粗糙正則表達式認爲「有效」的名稱。 「Jim-Bob O'Reilly」僅僅是「RenéHadron van derÖöps」的開頭......人們的名字中出現了許多更多的角色和構造,而不是你想象的。 – bobince 2010-09-13 17:19:33

回答

1

您可以使用/([\p{L}'-]+) ([\p{L}'-]+)/捕獲所有可能的字母。或/([a-z'-]+) ([a-z'-]+)/i只捕獲ASCII字母。

該組([\p{L}'-]+)意味着[\p{L}'-]重複至少一次。並且\p{L}表示任何unicode 字母。最後的-意味着名稱中允許使用「 - 」。

注: 當你拍攝人物與[]連字符必須是你的字符集的開頭或結尾。


編輯:

奧布賴恩先生現在是幸福的。


資源:

+0

+1。感謝colin – 2010-09-13 17:16:01

+0

。是啊即時通訊使用C# - 不像\ w和\ s - 給我「無法識別的轉義序列」 – Tom 2010-09-13 17:19:58

+0

@Tom記得通過寫「\\ s」或@「\ s」來逃避\\ – 2010-09-13 17:28:52

0

\ w + \ S + A-ZA-Z - ] +

+0

嗨gamebit - 感謝您的答覆。我使用ascii,當我輸入時 - 不像\ w和\ s - 給我「覆蓋Unicode的無法識別的轉義序列」 – Tom 2010-09-13 17:15:03