需要正则表达式忽略特定字符串的唯一数字

时间:2012-08-17 18:11:08

标签: regex

所以我使用的是使用正则表达式获取匹配的第三方应用程序。它会自动设置为仅匹配第一个匹配,因为它每页只查找一条​​信息。我无法更改此设置,除非我希望它找到所有匹配显示为我很少想要它的数组。最后一个条件不适用于我想要的比赛。

我想要找到的是ID代码。碰巧的是,所有ID都以10开头,然后是4个以上的数字

示例:

104230

所以我写了这个正则表达式

10[0-9]{4}

唯一的问题是标题中有一个名为10022008.js的.js文件,因为它会自动选择第一个匹配项,所有ID都设置为此。

如何让正则表达式忽略该字符串和该字符串?我所做的所有搜索只有类似的忽略类型代码没有工作

3 个答案:

答案 0 :(得分:4)

在正则表达式的每一端添加“单词边界”正则表达式\b

\b10[0-9]{4}\b

单词边界在任何“单词”字符(即\w,即[0-9a-zA-Z_])和任何非单词字符之间匹配,反之亦然,并且为零宽度,因此它赢得了' t为捕获添加任何字符。

答案 1 :(得分:1)

Lookahead是一种解决方案。可能不是最有效的,但我认为它是最具可读性的。

10\d{4}(?!08\.js)

这将匹配10后跟任意四位数字,前提是这些数字后面没有08.js

答案 2 :(得分:-1)

我不确定输入数据是什么样的,但是你可以将它限制在行的开头和结尾吗?

^10[0-9]{4}$