如何使用Perl的正则表达式替换a后面带有数字字符的数字字符?

时间:2012-12-02 04:00:28

标签: perl

任何人都知道如何使用正则表达式将“,/ d”替换为数字“/ d”?我尝试使用/ d并且它不起作用...它将替换,后跟任何数字和字母“d”。

提前致谢。

2 个答案:

答案 0 :(得分:5)

您可以捕获想要保留的内容并在替换中使用它:

s/,(\d)/$1/;

答案 1 :(得分:5)

使用look-ahead

删除数字前面的任何逗号
s/,(?=\d)//

如果您尝试s/,\d/\d/,Perl会将替换视为双引号字符串。由于没有转义码\d,因此只会忽略反斜杠,并使用d

如果你想用匹配的一部分替换比赛,你必须使用捕获(参见ysth的回答)。

我的上述替换不包括匹配字符串中的数字,因此只需用空字符串替换逗号(即删除它),但仍然断言逗号后跟数字。