我想匹配以下字符串:
[-ed, -ing, -ment <i>n.</i>]
但排除:
[-ed, -ing, -ment <b>n.</b>]
我的正则表达是:
\[[\-,\s\.(<i>)(</i>)a-z]+\]
哪个不起作用。
我向<i>
添加了括号,因此它显示为一个整体,因此<b>
不匹配。
但是,方括号内的括号似乎不起作用。
答案 0 :(得分:2)
以下适用于示例字符串:
\[([^<>]|<i>.*?<\/i>)+?\]
即。方括号,包含许多既不是<
也不是>
的单个字符,或者是包含某些内容的<i>[...]</i>
。
它将匹配第一个字符串而不是第二个字符串。然而问题描述非常模糊,因此正则表达式可能需要一些调整。 E.g:
是只是 <i>
还是除 <b>
以外的任何内容?
方括号可以包含嵌套的方括号吗?
方括号的内容实际上是逗号分隔的元素,必须以连字符开头吗?