只匹配某些标签之外的单词(Regex-JS)

时间:2015-05-11 22:43:23

标签: javascript php regex bbcode

我正在编写自己的BBCode解析器。我是非常新写的正则表达式。

我正在努力使我的正则表达式匹配所有标记,除非它们位于codequote标记内。这就是我的意思:

[b] This text will be bolded [/b]

[code][b] This text will NOT be bolded [/b][/code]
[quote][b] This text will NOT be bolded [/b][/quote]

问题是它是否与不应该加粗的文本相匹配......

这是我的正则表达式:

/((?!\[code\]) \[b\](.*)\[\/b\] (?!=\/code\]))/gi

你可以在这里找到一个有效的例子:https://regex101.com/r/oI3mN8/2

所以我的问题是,如何让它抓住正确的东西?

P.S。我怎样才能抓住每一块?现在它抓住了第一个和最后一个。例如:

[b] This text should be bolded [/b]
This text should not be bolded, but it still is.
[b] This text should be bolded again [/b]

出于某种原因只是抓住第一个和最后一个标签,为什么?

0 个答案:

没有答案