我解析一個文本,我想忽略人的名字。Ruby正則表達式:刪除名字,留下姓氏
實例(例):
- B.Obama =>奧巴馬
- B.奧巴馬=>奧巴馬
- 乙。奧巴馬=>奧巴馬
我設法寫這方面的工作正則表達式的紅寶石:
"B.Obama".gsub(/\p{L}+\.(\p{L}+)/, '\\1')
但是,它只能解決一個案件。另外,如果第一個字母是大寫,它不檢查。
那麼,應該如何結合所有這些情況下的正則表達式?
詳細信息:Ruby 1.92和UTF-8字符串。
我解析一個文本,我想忽略人的名字。Ruby正則表達式:刪除名字,留下姓氏
實例(例):
我設法寫這方面的工作正則表達式的紅寶石:
"B.Obama".gsub(/\p{L}+\.(\p{L}+)/, '\\1')
但是,它只能解決一個案件。另外,如果第一個字母是大寫,它不檢查。
那麼,應該如何結合所有這些情況下的正則表達式?
詳細信息:Ruby 1.92和UTF-8字符串。
嘗試
(\w+)$
\w+
匹配一個或多個 '字' 字。
$
是匹配字符串末尾的零長度匹配。
你想從一段文字中拉出第二個名字嗎?這可能會變得非常困難。你能發表文章的摘錄嗎?
如果姓氏是「del Cacto」? – 2011-02-01 10:11:46
有*沒有辦法*解析名稱,而不是與正則表達式,沒有任何其他工具。名字對於這個太可變了。比較`Christoph Willibald Gluck`和`FedericoGarcíaLorca`。你怎麼知道`Willibald`是一個給定的名字,'García`是姓氏的一部分? – 2011-02-01 10:48:58
相關問題:http://stackoverflow.com/questions/4731730/parsing-human-names-and-matching-them-in-ruby – 2011-02-01 22:10:25