Regex 如何创建交换lastname、firstname中间首字母的正则表达式
我正在尝试编写一个正则表达式,将lastname,firstname middleinitial交换为firstname lastname 比如说Regex 如何创建交换lastname、firstname中间首字母的正则表达式,regex,replace,expression,Regex,Replace,Expression,我正在尝试编写一个正则表达式,将lastname,firstname middleinitial交换为firstname lastname 比如说 doe, john j another example: doe, jane 变成 john doe 2nd example results jane doe 我试过:(\w+?)、(.+?)(&|-)(\w+?)、(.+?)(&|-)*(.+),还有:^(\w+)、*([\w\.]+)[+-[]*(. 两者都不起作用 任何帮
doe, john j
another example:
doe, jane
变成
john doe
2nd example results
jane doe
我试过:(\w+?)、(.+?)(&|-)(\w+?)、(.+?)(&|-)*(.+)
,还有:^(\w+)、*([\w\.]+)[+-[]*(.
两者都不起作用
任何帮助都将不胜感激
谢谢,可能会有帮助:
perl -e '$name = "doe, john j"; $name =~ /(.*?), (.*)/is; $fname = $2; $lname = $1; $fname =~ s/\s.*//is; $name = $fname. " " . $lname; print "$name\n";'
也许这会有帮助:
perl -e '$name = "doe, john j"; $name =~ /(.*?), (.*)/is; $fname = $2; $lname = $1; $fname =~ s/\s.*//is; $name = $fname. " " . $lname; print "$name\n";'
将^([a-zA-Z]+?)、\s*([a-zA-Z]+?)(\s+[a-zA-Z])?$替换为$2$1
应符合您的需要
请注意,我没有使用\w
类,因为它也匹配下划线(\uu
)和数字,而且我还从未见过名为John\uD0e
的人。)代码>用$2$1
替换^([a-zA-Z]+?)、\s*([a-zA-Z]+?)(\s+[a-zA-Z])?$
应该符合您的需要
请注意,我没有使用\w
类,因为它也匹配下划线(\uu
)和数字,而且我还从未见过名为John\uD0e
的人。)代码>能否提供更多应匹配的输入字符串示例?您似乎也想允许&
和-
字符。我添加了另一个示例。。它将始终是lastname,firstname,但有些具有lastname,firstname中间首字母。并非所有人都有中间首字母。我正在尝试将结果设置为firstname lastname。您能提供更多应该匹配的输入字符串示例吗?您似乎也想允许&
和-
字符。我添加了另一个示例。。它将始终是lastname,firstname,但有些具有lastname,firstname中间首字母。并非所有人都有中间首字母。我试图将结果设置为firstname lastname$name=~/(.*),(.*)/is$fname=$2$lname=$1$fname=~s/\s.*//is$name=$fname。" " . $名称;打印“$name\n”对于您给出的另一个示例:perl-e'$name=“doe,john”$name=~/(.*),(.*)/is$fname=$2$lname=$1$fname=~s/\s.*//is$name=$fname。" " . $名称;打印“$name\n”