将字符串“Parisi,Kenneth”分为“Kenneth”和“Parisi”的最佳方法是什么?
我还在学习如何用这些正则表达式解析字符串,但不太熟悉如何设置等于匹配字符串的变量。输出匹配的(或不匹配的)字符串。
答案 0 :(得分:13)
my ($lname, $fname) = split(/,\s*/, $fullname, 2);
注意第三个参数,它将结果限制为两个。不是严格要求,但仍然是一个很好的做法。
答案 1 :(得分:2)
这样的事情应该可以解决没有unicode字符的名称:
my ($lname,$fname) = ($1,$2) if $var =~ /([a-z]+),\s+([a-z]+)/i;
要打破它:
([a-z]+)
匹配一系列字符并将其分配给第一组$ 1 ,
匹配逗号\s+
匹配一个或多个空格(如果空格是可选的,请将+更改为*)([a-z]+)
匹配一系列字符并将其分配给第二组$ 2 i
不区分大小写的匹配您可以更改字符类[a-z]以包含您认为对名称有效的字符。