我解析一个文本,我想忽略人的名字。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