【发布时间】:2011-05-14 23:20:03
【问题描述】:
我需要匹配以下整个语句:
{{CalendarCustom|year={{{year|{{#time:Y}}}}}|month=08|float=right}}
基本上,只要有{,就需要有一个对应的},但许多嵌入的{ } 都在原始标签内。例如{{match}} 或{{ma{{tch}}}} 或{{m{{a{{t}}c}}h}}。
我现在有这个:
(\{\{.+?(:?\}\}[^\{]+?\}\}))
这不太行。
【问题讨论】:
-
你到底想从字符串中得到什么?
-
我只想匹配整个语句,以便删除它。就像周围有其他文本一样,我想匹配 {} 括号内的任何内容并将其删除。
-
一般来说,正则表达式不是匹配括号的正确工具,请参阅。例如here.
-
@Howard:“正则表达式”离成为正则表达式还有很长的路要走。现代正则表达式风格提供了许多新事物,像这样的问题非常适合递归正则表达式。
-
你可以只使用 JSON 吗?这种听起来像是你自己输出这个字符串,然后再尝试解析它。如果您确实拥有两端(并且只是序列化和反序列化),那么如果您只使用现有的解决方案,您将为自己节省大量工作;)