【发布时间】:2014-08-10 15:33:24
【问题描述】:
我打算使用 Lua 模式,除非有更好的方法。
我希望能够解析一个字符串,并寻找“标签”。例如,我想找到字符串的 '[color=???][/color]' 部分,不关心等号之后的内容,不关心标签之间的内容,也不关心标签中的位置字符串,只要它们在字符串中的 somewhere 中,并且 'color=' 后面有一个十六进制值。这是一个示例字符串:
mystring = 'Hello, [color=#0026FF]world[/color]!'
-- ^^^^^^^^^^^^^^^ ^^^^^^^^
【问题讨论】:
-
Parsing general-purpose markup languages that allow nesting is not possible using regular expressions. - 这看起来像是著名的论坛样式标记语言,我不记得它的名字了 - 有没有人为它编写过合适的解析器?
-
我在phpBB上看到过,我觉得它叫phpBB Code Markup。不确定它是否有名字。我认为还没有人写过解析器。该死!我可以通过其他方式在 Lua 中查找这些标签吗?
-
您的标记有多复杂?具体规则是什么?找到它们后你想做什么? Patterns in the manual
-
请注意 Lua 模式不是正则表达式;它们有不同的语法,而且模式比正则表达式弱。
-
@paramagnetic:phpBB 是高度特殊的。我不会感到惊讶,论坛引擎中的实际解析器是您试图避免的大量正则表达式:)
标签: string lua lua-patterns