正则表达式删除小数字并留下大数字

问题描述 投票:0回答:1

在包含许多段落、句子或短语的文本文件上进行编号。我在 Perl 中使用 regexp 来删除这些数字。它们后面总是跟着句子/短语的第一个字母 以及一个空格。但这也匹配文本中合法部分的数字。如果我可以将其限制为一个或两个数字的字符串,而不是更多,并且不包含逗号,我可以手动删除不需要的三位数的罕见实例,或者重新插入该罕见的两位数。不应该被删除。

我无法找出具有这些限制的正则表达式。这怎么办?

示例:

perl -p -i -e 's:(\D)\d{1,2}(\w):\1\2:g;
               s:\d+-\d+::g;
               s:^\d{1,2} ?::g;' {filenames}

删除了标记,但也删除了“337,000”中的数字,留下逗号。

regex perl
1个回答
0
投票

以下内容匹配前面和后面都没有数字的两个数字序列。

(?<!\d)\d{1,2}(?!\d)
© www.soinside.com 2019 - 2024. All rights reserved.