改变数字的正则表达式

时间:2013-09-08 14:01:40

标签: regex

我会使用正则表达式来选择一个不断变化的数字 例如,在以下示例中,我将选择可以更改的12090343

我用:

preg_match (/(?<=Dossier.N..)(.*)(?=-)/)

它有效,但我觉得它不是那么干净,因为空间的数量可能会发生变化,因此它不会再检测到这个数字

                                        Dossier N° 11110144-001          Pvt du : 03/09/2013 à 7:16

2 个答案:

答案 0 :(得分:1)

它看起来很好,但你可以稍微清理它。将数字分组并使其匹配数字:

(?<=Dossier.{0,3}N.{0,3})\d+(?=-)

大多数正则表达式引擎无法处理任意长度的后台,因此,不必使用更简单(但无限制)的表达式\s*,而必须使用有限长度的表达式,如\s{0,3},以允许“某些“空白。

答案 1 :(得分:0)

您可以尝试以下表达式:

/Dossier[^0-9]*\K([0-9]*)(?=-)/

Regex101 Demo