我找不到适合我情况的正则表达式。我需要将所有文本放在双方括号之间,但不要在连字符之间。例如:
[[abc]] would get abc
[[-abc]] would get -abc
[[abc-]] would get abc-
[[-abc-]] would get nothing
我几乎可以用我想要的东西:
\[\[(\-(.*?)\-)\]\]
但是此表达式返回双方括号AND之间的文本,该文本也位于连字符之间(我需要不要在连字符之间)
请帮忙吗?
答案 0 :(得分:1)
此模式对我有用:
(?!\[{2}\-[^(\-|\s)]*\-\]{2})\[{2}([^(?:\]{2})]*)\]{2}
匹配不需要不需要的模式([[-foobar-]]
)非常容易,因此该解决方案使用否定的前瞻性来确保以下不需要 strong>匹配该模式,然后将双括号之间的所有内容作为捕获组。
在此处进行测试:https://regex101.com/r/pxbwKo/2