【发布时间】:2017-11-20 09:02:13
【问题描述】:
我正在编写一个 perl 脚本来读取成员的全名并将其保存到变量 firstname 和 lastname 中,如下所示:
my ($firstname, $lastname) = $member =~ m/^(\w+.*?) +(\w+)$/;
my $member_name = $firstname.' '.$lastname;
$member 的值来自上游服务,例如“Jane Doe” 现在,当服务发送像“Jane”这样的 $member 值时,上面的代码无法处理。正则表达式无法处理该代码行中的单个单词。我需要它来处理多个单词和单个单词。我无法实现新的代码功能,因此我希望添加到现有的正则表达式中,以便进行最小的更改并且它可以同时处理这两种情况。
到目前为止,这是我在命令行中测试的,但到目前为止还没有运气:
perl -e 'my ($firstname, $lastname) = "Jane Doe" =~ m/^(\w+.*?) +(\w+)$/|m/^(\w+)$/; print "$firstname\n$lastname";'
当我将“Jane Doe”替换为“Jane”时,什么也没有打印出来。我希望代码采用这种格式。就像值是多个单词一样,它应该同时打印它们,否则只打印一个单词。
您的帮助将不胜感激。
【问题讨论】: