1

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

我希望它找到的是 ID 代码。碰巧所有的 ID 都以 10 开头,后跟 4 个数字

例子:

104230

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

10[0-9]{4}

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

你如何让正则表达式忽略那个数字字符串和那个字符串?我所做的所有搜索都只有类似的忽略类型代码没有奏效

4

3 回答 3

4

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

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

任何“单词”字符(即 )和任何非单词字符之间的单词边界匹配\w[0-9a-zA-Z_]反之亦然,并且是零宽度,因此它不会将任何字符添加到您的捕获中。

于 2012-08-17T18:14:21.950 回答
1

前瞻是一种解决方案。可能不是最有效的,但我认为它是最易读的。

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

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

于 2012-08-17T18:14:50.800 回答
-1

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

^10[0-9]{4}$
于 2012-08-17T18:14:25.720 回答