1

当我使用:

(Act\sNo.\s\d+\sof\s\d+,[^\Q</ref>\E])

然后这匹配:

Act No. 5 of 20,

但这不会:

<ref id="" status="" href="412">Act No. 5 of 20,</ref>

哪个是对的。

现在我想做类似的事情。当我使用:

(Cap.\s\d+[^\Q</ref>\E])

然后这匹配:

Cap. 412

这也是如此(即使它不应该):

<ref id="" status="" href="412">Cap. 412</ref>

但是,我注意到,如果我在正则表达式和文本中都有一个逗号,412那么它就像上面的例子一样工作。总而言之,它应该不包括</ref>最后的那些。我一直在这里测试:RegExr

4

3 回答 3

1

永远不要在 HTML 上尝试正则表达式。首先,通过 DOM 函数解析 HTML,然后对值使用 RegEx。

于 2012-12-16T18:23:03.317 回答
0

[^\Q</ref>\E]应该(?!\Q</ref>\E)

其中的字符[^\Q</ref>\E]被单独处理

于 2012-12-16T18:25:00.507 回答
0

我想到了。我只需将其更改如下:(Cap.\s\d+(?!.*</ref>))

于 2012-12-20T11:55:01.463 回答