我正在尝试查找与文本中的某些自定义标记匹配的正则表达式。标签的格式总是[! - sometext--]或[! - sometext:param1--],[! - sometext:param1:param2--]。我需要做的是将“sometext”部分和可选参数分别取为“param1:param2”或“param1”和“param2”(无关紧要)。
我对没有参数的标签的方法是
\[!--(.+?)--\]
但我如何以优雅的方式匹配params部分?
答案 0 :(得分:1)
更新:好的,第三次应该是魅力吧? ;-)这对我来说是一个Perl脚本示例。
这应该这样做(我假设一个与Perl兼容的注册表...你没有指定你在写这个语言的语言):
\[!--([^\]:]+):?([^\]-]+?)?--\]
这里发生了什么?
[!--
:
或]
-
或]
的东西(这应该一次捕获所有可选参数)--]
您需要在:
上拆分可选参数,以捕捉可能存在多个参数的情况。