【发布时间】:2012-03-14 20:26:07
【问题描述】:
我想找到一个彼此重复 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 中实现。
【问题讨论】:
-
一些示例输入和输出,以及您使用的语言会有所帮助。
标签: regex perl backreference repeat