我想帮助解析一些某人的名字.我想取字符串并删除它,以便只有第一个名字将在字符串中.
假设我有这样的名字
Mr. John Doe
John Smith.
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我只想获取字符串的第一个名称并删除所有其他字符.
因此,对于两个字符串,在它们被解析之后将会有John它们
我想知道是否有办法用正则表达式来解决这个问题.
你不能这样做.不是因为你已经破坏了他们的名字而烦恼了一些人.你无法区分John Paul Doe(名字"John",中间名"Paul",姓氏"Doe"),John Joseph Brown("Joseph"或"Joe"的答案,但只使用"John"政府形式)和约翰保罗史密斯(名字"约翰保罗",并讨厌缩短它).
然后再读一遍,这次接受,是的,世界上95%的人口对你的名字有一个完全不同的想法.(如果你是中国人,则为80%.)
你能做的最多就是截断空格,也许还有一些像"先生"这样的"安全"前缀 - 我甚至不会这样做(如果有人打扰写"先生",他们可能会喜欢在那里写).
s/^\s+//; s/\s+$//; # trim whitespace at each end
s((\s+))( # trim embedded whitespace
$1=~/[^\x{a0}]/ ? # breakable?
" " : "\x{a0}")ge;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |