我正在编写自己的BBCode解析器。我是非常新写的正则表达式。
我正在努力使我的正则表达式匹配所有标记,除非它们位于code
或quote
标记内。这就是我的意思:
[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]
出于某种原因只是抓住第一个和最后一个标签,为什么?