我試圖做一個正則表達式來驗證Android上常見的新加坡名稱。新加坡名稱的正則表達式驗證
我現在的正則表達式是^[A-Za-z\s]{1,}[\.]{0,1}[A-Za-z\s]{0,}$
它可以接受有空格之間的任意值,但接受了太多其他的值,這使得它不適用。
正則表達式應該接受:
Benedict Tan
James Watson
Richard Lim Jun Qi
Tan Ho Wen
Eng Pin Wee
正則表達式應該拒絕:
Ngee Ann Polytechnic
Institute of Singapore
Singapore University of Technology and Design
ST Electronics
Green View Secondary School
Anderson Primary School
NUS
Ministry of Education
Singapore Press Holdings Pte Ltd
這是一個棘手的,我無法弄清楚如何區分它們。
---------------------------------------------- - - - - -編輯 - - - - - - - - - - - - - - - - - - - - -
一個建議是列出「學院,學校,大學,技術,設計,公司」等非名詞,並拒絕這些。
如何才能基於此形成一個正則表達式? 我目前正在嘗試它在正則表達式測試儀上,仍然在努力。
缺乏建立一個禁止字的字典有沒有解決這個問題。即使使用這樣的字典,也可能會出現無法自動處理的情況,您會經常更新字典。 –
@Jim Garrison這就是我的想法..猜想畢竟沒有解決方案 –
@JimGarrison比方說,我想讓這個更準確,接受2到4個單詞的名字怎麼樣。並拒絕只有1個字或超過4個字的名稱?我知道它仍然會接受「義安理工學院等」 –