如何匹配字符串之间的数字而不是数字之间的数字


How to match digits between strings not between numbers

是否可以

编写一个与左侧或右侧没有整数的数字匹配的正则表达式?如果我们有这些字符串:

a20c
 20c
.20c
a20-
120

它应该首先匹配四个,但不是最后一个。

此正则表达式模式将匹配20位于中间某处且没有其他数字接触20的文本。这可能发生在文本中的任何位置,因此匹配DM11 20-B但不DM1120-B

[^0-9]20[^0-9]

或者更浓缩一点:

'D20'D
您可以使用

^'D{1}'d+'D{1}$

Olso 你可以在这里测试你的正则表达式:https://regex101.com/r/nU4jL1/2

您可以使用 2 个环顾四周来确保您的数字被非数字包围:

(?<='D)'d+|'d+(?='D)

正则表达式演示