PHP:确定重要性的正则表达式顺序

时间:2011-04-18 00:37:38

标签: php regex string

我在一直在研究的语法荧光笔中遇到了麻烦。 PHP支持""''之间包含的字符串。与C#不同,C#更容易通过仅允许""来控制,使用选项@来自动转义字符串。

如果我有两个字符串,就像这样:

$code = "print( \"<div class='test'>content?div><div class='test'>content</div>\" );";

如果我回复$ code,我会得到:

print( "<div class='test'>content?div><div class='test'>content</div>" );

这是我的问题。当我解析起始引用和结束引用之间的内容时,我删除了这些内容以便稍后放回(因此我不会突出显示),使用剪贴板工具(只需复制粘贴)。 我设置了使用正则表达式解析''第一次之间的内容。最终结果(在两种字符串类型之后)将如下所示:

print( "<div class=>content?div><div class=>content</div>" );

如何修改我的正则表达式以回顾(从开始)和向前(从结束)以查找最顶部的字符串分隔符('")。很难解释,希望有人得到它,否则我只能忍受它。

1 个答案:

答案 0 :(得分:2)

正则表达式无法做到这一点;它们不足以处理递归。它们无法正确关闭嵌套括号,它们无法正确关闭嵌套引号。至少对于这种功能,您需要一个下推式自动机(或无上下文语言)。