我有以下字符串格式:
[[TEXT|TEXT]] <-- the "|TEXT" is optional
到目前为止,有效的方法是:
/([^\[]+)(?=\]\])/
将返回:
TEXT
or
TEXT|TEXT
我想匹配“| TEXT”如果它已被包含并且只匹配“|”的左侧或“]]”取决于哪个是第一个。
有什么建议吗?
答案 0 :(得分:0)
更新 - 如果您只想匹配[[]]
中的内容而不包括|TEXT
(如果有),请尝试以下操作:
([^|\[]+?)(?=(?:\]\]|\|))
这或多或少是你的起始正则表达式,但它停在|
或]]
。
或者,如果您的正则表达式支持后视,您可以这样做:
((?<=\[\[)([^\|]+?)(?=(?:\]\]|\|))
这只会强制您从[[
开始匹配。不是真的有必要,但有点未知 - 内容证明。