2015-12-09 42 views
-5

如何寫正則表達式來驗證印地名?如何爲印地名寫正則表達式

印度人的名字大多不包含人的姓氏或姓氏。它僅包含Initial,後跟Name,反之亦然。

名稱應該包含大寫和小寫的情況,或者包含兩種情況。白色空間和完全停留也是名稱的一部分。

人名應以大寫或小寫字母開頭。

我需要正則表達式來驗證下面列出的名稱。

測試用例有效的名稱列表:

  1. B.巴拉Manigandan
  2. B.Balamanigandan
  3. B. Balamanigandan
  4. G.S. Sakthivel
  5. G. S. Sakthivel
  6. Sakthivel M.G.
  7. GS Sakthivel
  8. GS SAKTHIVEL
  9. BALA MANIGANDAN .B
  10. Sakthivel .MG

回答

1

如果你想趕上只包含上面的所有字符串和小寫字符,時間和空間,你可以使用

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

這裏的正則表達式是如何工作的

0故障

^字符串

[A-ZA-Z \的開頭相匹配。 ]匹配任何字符AZ,AZ,或者一段時間或空間
        +使得上述匹配任何字符串與1個或多個字符

$所述字符串的末尾匹配

您可以test this regex here, at regex101.com

正則表達式也許可以創造更好的,雖然,以確保該字符串不結束或者用一段或空間

^(?![\. ])[a-zA-Z\. ]+(?<!)$ 

這在本質上是一樣的上述正則表達式開始,它除了使用負向前看符號和負lookbehinds以確保該字符串不以句號或空格開頭或空格結束

初組

        ?!使得基團的Negative Lookahead

        [\。 ]匹配句點或空間(在這種情況下,因爲我們正在尋找一個負先行,這將確保它匹配這個)集團的

結束


開頭,第二組的

        ?<!使得GRO一個Negative Lookbehind

       空間相匹配的文字空間(在這種情況下,因爲我們正在尋找一個負回顧後,它將確保它比賽這一點)

結束第二組的

您可以測試這個表達式here on regex101.com

+0

的名稱建議立即進行刪除d只能使用大寫或小寫字母,而不能使用句點或空格。 –

+0

它不驗證名稱.B.Balamanigandan - 請檢查一次。 –

+0

https://regex101.com/r/yB7wW0/1 –