我想要找到一个彼此重复x次的组,例如,以空格分隔的字母数字组合的五次。我可以使用简单的重复语法,例如(?:\w\d){5}
。对由固定重复次数组成的组的组成要素的反向引用
然后我想用另外一些东西替换这个5x字母数字中的空格。为此,我尝试通过在其周围放置括号来反向引用每个字母数字组合(没有空格):(?:(\w\d)){5}
。不幸的是,所有五个都存储在$1
,即每次匹配时$1
被覆盖。
那么,有没有办法避免这种覆盖?或者有没有办法只在子串中替换某些东西?
编辑:
实施例的输入字符串:A1 A3 A4 B6 ::: A1 A3 A4 C5 B6
希望的输出字符串:A1 A3 A4 B6 ::: A1-A3-A4-C5-B6
这意味着,代替空间仅当存在它们中的五个。在Perl中实现。
一些样品的输入和输出,以及因为你在工作的语言会有所帮助。 – alan 2012-03-14 20:35:00