回答
背景
有一對夫婦的事情,這裏要注意。首先,量詞(在這種情況下,{3,16}
)僅適用於最後一個正則表達式標記。因此,您當前正則表達式的真正含義是「匹配任何具有單個字母字符的字符串(不區分大小寫),後跟3到16個空格字符(例如空格,製表符等)。」
二,名稱可以有超過2個部分(中間名,某些民族名稱,如「德拉克魯茲」)或包括特殊字符,如重音元音。你應該考慮這是你在程序中需要考慮的事情。這些事情很重要,應該考慮任何真實應用程序。
假設和回答
現在,就讓我們假設你只想要的名字一定的格式,由一個名字,姓氏,和空間。假設您只需要簡單的ASCII字符(即沒有特殊字符或重音字符)。此外,名字和姓氏都應以大寫字母開頭,後跟小寫字母。除此之外,名稱的各個部分的長度沒有限制。後^
字符是所謂的positive lookahead
^(?=.{3,16}$)[A-Z][a-z]+ [A-Z][a-z]+$
注意
第一令牌:在這種情況下,下面的正則表達式會做的伎倆。基本上,積極的展望將匹配開頭(?=
和結束)
之間的正則表達式,而不實際移動與該字符串匹配的遊標的位置。
通知我刪除了\s
的道理,因爲你通常想只(空間)。如果需要製表符和其他空格,那麼可以使用
\s
標記替換空間。
我還添加了一個限制,名稱必須以大寫字母開頭,後跟只有小寫字母。
原油翻譯
以幫助理解,這裏是一個什麼樣的正則表達式是真正做一個簡單的英文翻譯。斜體部分只是從正則表達式的英文翻譯的第一部分複製而來。
「相匹配的有3-16個字符,並以大寫字母字符後面跟着一個或多個(
+
)開始字母字符後跟一個空格,然後大寫字母字符後面跟着一個或多個任意字符串(+
)字母字符並以任何小寫字母結尾。「
工具
有一對夫婦的工具,我想,當我試圖解決一個具有挑戰性的正則表達式來使用。他們被列在下面沒有特定的順序:
- https://regex101.com/ - 允許您實時測試正則表達式。它還有一個漂亮的小圖書館來幫助你。
- http://www.regular-expressions.info/ - 基本上是正則表達式的知識庫。
編輯/更新
您在您的意見,您使用的是JavaScript中您正則表達式提及。 JavaScript使用圍繞正則表達式的正斜槓來確定什麼是正則表達式。對於這個簡單的例子,使用正則表達式來匹配一個字符串有兩個選項。
首先,使用String
的比賽方法如下
"John Smith".match(/^(?=.{3,16}$)[A-Z][a-z]+ [A-Z][a-z]+$/);
其次,創建一個正則表達式,並使用其test()
方法。例如,
/^(?=.{3,16}$)[A-Z][a-z]+ [A-Z][a-z]+$/.test("John Smith");
後者可能是你想要的東西,因爲它簡單地返回取決於正則表達式是否實際匹配字符串或不true
或false
。
謝謝你所有的解釋,現在我清楚了,它在我的程序中工作得很好。謝謝 –
- 1. 正則表達式空格
- 2. 正則表達式匹配無字符字符一個空格
- 3. 正則表達式醒目字符空格字符組
- 4. 正則表達式:特殊字符和製表符空格
- 5. JavaScript正則表達式空白字符
- 6. 正則表達式爲空字符串
- 7. 正則表達式與空字符串
- 8. 字母數字,連字符和空格的正則表達式
- 9. Django正則表達式捕獲空或空格字符
- 10. Javascript正則表達式的字母字符和空格?
- 11. 允許空格,字符和數字的正則表達式
- 12. 正則表達式 - 數字,字符和空格僅限
- 13. 正則表達式字符
- 14. 正則表達式字符
- 15. 正則表達式字符
- 16. 正則表達式字符?,$,|
- 17. 搜索正則表達式,返回字符串與空格
- 18. 使用空格替換非alpha字符的正則表達式
- 19. XRegExp正則表達式允許字符間單個空格
- 20. 包含空格的多個字符串的正則表達式
- 21. 正則表達式刪除字符空格以後的各線
- 22. 正則表達式,任何字符,但一個空格
- 23. 正則表達式alphanum在字符串末尾沒有空格
- 24. 通過正則表達式匹配空格的字符串
- 25. 正則表達式允許在Java中使用空格字符
- 26. 只允許字符或空格的正則表達式
- 27. Javascript正則表達式「單個空格字符」
- 28. 用空格替換特殊字符通過正則表達式
- 29. 正則表達式:詞用空格到字符串數組
- 30. 正則表達式匹配空格或字符串結尾
此時表達式匹配單個字符'a'到'z'(小寫或大寫),後跟3到16個空格。量詞只適用於'\ s'。 –
當試圖調試正則表達式時 - 不要過去像https://www.debuggex.com/r/GFfROJSrQEMa2mta這樣的網站,它可以幫助您快速找到問題。 – Shadow
@shadow這是一個漂亮的小工具。我也喜歡regex101.com。它是完全免費的。 – c1moore