【发布时间】:2009-11-28 08:19:19
【问题描述】:
我有一个类似的字符串:
[a b="c" d="e"]Some multi line text[/a]
现在d="e" 部分是可选的。我想将这种类型的字符串转换为:
<a b="c" d="e">Some multi line text</a>
a b 和 d 的值是恒定的,所以我不需要捕获它们。我只需要c、e 和text between the tags 的值并创建一个等效的基于xml 的表达式。那么怎么做呢,因为还有一些可选的部分。
【问题讨论】:
-
我想可能会有这样的情况:
[a b="<c>" d="e"]Some <element>here</element> too[/a]? -
[a..]..[/a] 之间可以有任何东西
-
如果“任何东西都可以在 [a..]..[/a] 之间”,那么您将生成一个无限大的正则表达式,它将被无限破坏
-
我不认为,因为文本中不会有任何[/a],即使它存在我也需要匹配第一个结尾[/a]
-
您说过“文本可以是任何东西”和“本身不能有 HTML 标记或脚本”。所以你有一个未定义/矛盾的问题,不可能写一个正则表达式。只有您知道语法(如果有的话)适用于您的多行上下文。只有您可以编写解析器。并且正则表达式几乎肯定会导致问题