在Perl中使用正则表达式拆分字符串

时间:2011-02-03 10:44:26

标签: regex perl split

为什么这些行为不一样?

perl -e '$x = "12aba34ba5"; $, = ", "; print split /[ab]/, $x;'
12, , , 34, , 5

perl -e '$x = "12aba34ba5"; $, = ", "; print split /(a|b)/, $x;'
12, a, , b, , a, 34, b, , a, 5

1 个答案:

答案 0 :(得分:2)

perldoc split中记录了这一点:

  

如果PATTERN包含括号,   创建其他列表元素   来自每个匹配的子字符串   分隔符。

如果您不想进行反向引用,可以使用(?:a|b)