如何在perl中拆分和保留拆分条件

时间:2013-09-23 06:32:03

标签: regex perl

假设我有一个像以下

的字符串

mother-in-law,我需要输出有5个令牌,如mother-in-law

我尝试基于连字符进行拆分,但我只能获得三个令牌motherin law

2 个答案:

答案 0 :(得分:4)

如果拆分正则表达式包含捕获组,则split将返回每个捕获组的内容。所以要保留-分隔符,只需写

即可
split /(-)/, "mother-in-law"

而不是

split /-/, "mother-in-law"

答案 1 :(得分:3)

使用/(-)/作为拆分模式:

print join(' ', split(/(-)/, 'mother-in-law'));

打印

mother - in - law

根据split - perldoc

  

如果PATTERN包含捕获组,则对于每个分隔符,a   为组捕获的每个子字符串生成附加字段