0

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

提前致谢。

4

2 回答 2

5

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

s/,(\d)/$1/;
于 2012-12-02T04:22:57.013 回答
5

只需使用前瞻删除数字前面的任何逗号:

s/,(?=\d)//

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

如果您想用匹配的一部分替换匹配,则必须使用捕获(请参阅 ysth 的答案)。

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

于 2012-12-02T05:04:56.170 回答