【发布时间】:2011-09-05 23:43:06
【问题描述】:
我一直很难使用正则表达式。我已经搜索过这方面的帮助,但我找不到我要找的东西。
我有遵循这种模式的文本块:
[php] ...任何类型的代码示例在这里 [/php]
我需要:
- 检查方括号,它可以包含任意数量的 20-30 个编程语言名称(
php、ruby等)。 - 需要抓取左括号和右括号之间的所有代码。
我已经制定了以下正则表达式:
#\[([a-z]+)\]([^\[/]*)\[/([a-z]+)\]#i
这一切都很好。但是,当代码示例包含方括号时,它会中断。如何修改它,以便这些左/右大括号之间的 任何 字符将被匹配以供以后使用?
【问题讨论】:
-
你会有类似
[php] print "[/php]"; [/php]的东西吗?如果是这样,正则表达式不会帮助你,但会帮助你很多。检测类似情况所需的正则表达式会非常复杂,因此最好使用整个解析器。