在包含许多段落、句子或短语的文本文件上进行编号。我在 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”中的数字,留下逗号。
以下内容匹配前面和后面都没有数字的两个数字序列。
(?<!\d)\d{1,2}(?!\d)