测试字符串:
[valign px=-2][center][bgcolor=GREEN]TESTING[/bgcolor][/center][/valign]
我想出了color.*?\]
几乎可行的方法......它获取关键字之后直至结束括号的所有内容:
color=GREEN] AND color] ---> Target ---> [bgcolor=GREEN] AND [/bgcolor]
我只是不明白如何反向做同样的事情
\[.*?color.*?\]
这让我得到了键之前直到结束括号的整个字符串 -[valign px=-2][center][bgcolor=GREEN]
但它也正确地给了我它们之间[/bgcolor]
没有的TESTING
我正在使用https://regex101.com/进行测试
如果您想要获取以小写字母作为颜色
[bgcolor=GREEN]
并[/bgcolor]
以大写字母作为颜色值的前导字符,则可以使用:查看正则表达式 101 演示
或者使用否定字符类进行更广泛的匹配,用
[^
部分正则表达式匹配:
\[
匹配[
[^][=]*
[
]
匹配除或之外的任意字符 0 次以上=
color
逐字匹配(?:=[^][=]+)?
可选匹配除或=
之外的任何字符 1+ 次[
]
=
]
逐字匹配查看正则表达式 101 演示
假设您想要匹配
bgcolor
标签的 RHS 值,并且您的实际正则表达式引擎支持该\K
标志,则您可以使用以下模式:演示
这仅匹配关键字存在的 非嵌套括号分隔文本伪打开/关闭或自包含标签
[/?..keyword../?]
,这可能对搜索和突出显示有用。
https://regex101.com/r/OQZHC6/1