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

时间:2016-07-08 15:55:29

标签: php regex

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

a20c
 20c
.20c
a20-
120

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

3 个答案:

答案 0 :(得分:1)

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

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

或者更加浓缩:

\D20\D

答案 1 :(得分:1)

您可以使用^\D{1}\d+\D{1}$

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

答案 2 :(得分:0)

您可以使用2种外观来确保您的数字被非数字包围:

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

RegEx Demo