拆分的正则表达式替代方案?

时间:2011-12-09 09:16:33

标签: regex perl

如何转换以下字符串

"str 1<tab>str 2<tab>str 3<tab>str 4..........<tab>str n<tab and some whitespace>"

"*str 1*<tab>*str 2*<tab>*str 3*<tab>*str 4*..........<tab>*str n*<tab and some whitespace>"

其中str可以是“Stack - overflow”或“Super:User”,即包含一些空格和特殊字符的单词。

我知道我们可以使用拆分并解决这个问题。有没有办法只使用= ~s /// ..?

提前致谢!

三位一体

1 个答案:

答案 0 :(得分:4)

$str =~ s/([^\t]+)/*$1*/g;  # Wrap all non-tab groups with '*'s

要处理“特殊字符”,只需将其添加到不需要的项目列表中:

$str =~ s/([^\t:-]+)/*$1*/g;