【发布时间】:2018-04-02 15:23:25
【问题描述】:
我需要编写一个匹配这样的模式的正则表达式:
[[string|string]]
在该特定语法中两次是相同的字符串(我不想匹配括号本身)。我设法想出了这个:
(?<=\[\[)(.*)(?=\|)\|\1\]\]
但是,由于某种原因,它不匹配,我不明白我的错误在哪里。
更新:结果它不起作用,因为我的代码很脏,并且第一个字符串中有一些 ● 字符,所以两个字符串不相等:https://regexr.com/3n7ni
删除那些无关的字符使正则表达式匹配,尽管它仍然需要调整(比如不匹配闭括号):https://regexr.com/3n7o7
【问题讨论】:
-
“不起作用”到底是什么意思?该正则表达式有效。如果不是,则问题出在您的代码上。
-
@Aran-Fey 未找到匹配项:regexr.com/3n7ni
-
试试
\[{2}([^|\]]+)\|\1]{2}。另外,哪种语言? -
您是否注意到大红色的“错误:此风味不支持后视”消息?如果您在实际支持它的地方对其进行测试,它就可以工作。
-
@Aran-Fey:发现错误,我的代码中有一些奇怪的 ● 字符,呃。这确实匹配:regexr.com/3n7o7
标签: regex