【发布时间】:2017-11-05 08:02:26
【问题描述】:
Regex 对我来说一直是一个弱点,所以我需要一些帮助。
我基本上尝试在这些标签内部使用相同的正则表达式打开和关闭“标签”。
所以标签可能看起来像:<: tagname("[capture1]","[capture2]","[capture3]") :>[inner code]<: endtagname :>
所以一个带有子标签的可能是:<: tagname("[capture1]","[capture2]","[capture3]") :>This is a tag: <: tagname("[capture1]","[capture2]","[capture3]") :>[inner code]<: endtagname :> that was a tag<: endtagname :>
所以我尝试了一些正则表达式代码,但无法弄清楚如何让父标签不在子标签上结束。
这是我尝试过的正则表达式之一:<:[ ]?date[ ]?[(][ ]?'"['"],[ ]?'"['"],[ ]?'"['"][)][ ]?:>([\s\S\t\r]*)<:[ ]?enddate[ ]?:>
这适用于单级标签,但不适用于父/子标签。
感谢任何帮助。
【问题讨论】:
-
如果没有递归或平衡构造,您无法使用正则表达式处理它。 Go 正则表达式没有。专用解析器似乎是这里的唯一方法。