在notepad++中使用正则表达式选择小于10000的数字

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

我有一个很长的清单,以下是其中的一部分:

English

4,000,000

AfricanAmerican

1,771,000

Irish

1,100,000

Dutch

800,000

German

700,000

Scotch-Irish

0-640,000

NativeAmerican

=0=500,000

Scottish

450,000

Russian

15,000

Austrian

5000

Finnish4000

Swiss

+4000

1820

现在我想在notepad++中使用正则表达式选择所有逗号分隔的数字和小于10000的数字

以下正则表达式适用于逗号分隔的数字,但它不能选择小于 10000 的数字:

\d{1,3},\d{3}

如何修改它以也选择小于10000的数字?

请注意,正则表达式也必须选择与单词组合的数字,例如

Finnish4000

regex notepad++
1个回答
0
投票

您可以使用交替,并排除以零开头的 1-4 位数字。

为了防止部分匹配,您可以断言左侧和右侧没有数字。

(?<!\d)(?:\d{1,3}(?:,\d{3})+|(?!0)\d{1,4})(?!\d)

正则表达式匹配:

  • (?<!\d)
    断言左边不是数字
  • (?:
    替代方案的非捕获组
    • \d{1,3}
      匹配1-3位数字
    • (?:,\d{3})+
      重复 1+ 次
      ,
      和 3 位数字
    • |
      或者
    • (?!0)\d{1,4}
      负向前瞻,断言右侧不为零并匹配 1-4 位数字
  • )
    关闭非捕获组
  • (?!\d)
    断言右侧有一个数字

查看 正则表达式演示

© www.soinside.com 2019 - 2024. All rights reserved.