1

因此,在我的正则表达式中,我有一个组,其内容是带有破折号的数字:

00-111-222-333-44

如何使用带有破折号字符的正向前瞻来仅选择该组中的数字,目标是当我稍后反向引用该组时,我希望在我的输出中这样做:

0011122233344

像这样,但对于整个字符串,现在表达式只匹配破折号之前的第一个数字,即 00:

[0-9]+(?=-)

有没有更简单的方法来选择该组内的所有数字,忽略破折号,所以我可以反向引用该组并获得没有破折号的干净数字?

4

2 回答 2

1

您可以使用以下 perl 命令替换数字之间出现的所有连字符:

perl -pe 's#(?<=\d)-(?=\d)##g'
于 2013-03-28T12:51:13.840 回答
0

如何在该组中使用带有破折号的正向前瞻,以便稍后反向引用该组时它只包含数字?

这对于正则表达式是不可能的。组只能引用输入字符串的完整子字符串。而不是尝试匹配它,您应该应用两步方法并使用正则表达式替换在匹配之前删除所有破折号。

于 2013-03-28T11:38:22.170 回答