使用 PCRE 正则表达式匹配大多数(但不是全部)一到三位数的数字

meh*_*ydm -1 regex pcre numbers digits

我需要匹配 1、2 或 3 位数字,例如([\d]|[\d][\d]|[\d][\d][\d]). 但我需要两个 3 位特定数字的例外,即350380。是否可以创建一个正则表达式来实现我的目标?

Luc*_*ski 5

这很简单:

  • 1 到 3 位数字:(\b\d{1,3}\b此处需要字边界 - 否则您可能会匹配更长数字的一部分)
  • 350 和 380 除外:(?!350|380)或者(?!3[58]0)如果您喜欢可读性较差的表达式;)

将它们结合起来,你会得到:

\b(?!350|380)\d{1,3}\b
Run Code Online (Sandbox Code Playgroud)

演示