我正在尝试编写一个正则表达式,将姓氏换成firstname,初始名称为firstname lastname。
所以,例如
doe, john j
another example:
doe, jane
成为
john doe
2nd example results
jane doe
我试过这个:(\w+?), (.+?)(&|-) ((\w+?),(.+?)(&|-))*(.+)
和这个:^(\w+), *([\w \.]+)[ ]+-[ ]*(.*)
都没有工作。
任何帮助都将不胜感激。
谢谢,
答案 0 :(得分:1)
^([a-zA-Z]+?),\s*([a-zA-Z]+?)(\s+[a-zA-Z])?$
替换$2 $1
符合您的需求。
请注意,我没有使用\w
类,因为它匹配下划线(_
)和数字,而且我从未见过名字为John_ D0e
的人;)
1}}
答案 1 :(得分:0)
这可能会有所帮助:
perl -e '$name = "doe, john j"; $name =~ /(.*?), (.*)/is; $fname = $2; $lname = $1; $fname =~ s/\s.*//is; $name = $fname. " " . $lname; print "$name\n";'