【问题标题】:Split code by semicolon用分号分割代码
【发布时间】:2015-04-26 10:16:11
【问题描述】:

我想解析一个源代码。我逐行阅读,但一行可以包含多个命令。

我想知道是否可以用分号分割行,但只能用不在'...'"..." 块中的那些。

【问题讨论】:

  • 为什么不使用tokeniser?而不是尝试编写自己的解析器
  • 是否也可以使用它来解析phpdoc?
  • 是的,可以使用 tokenizer 解析 phpdoc.... 它旨在解析 PHP 文件,包括 docblocks 和代码
  • 使用正则表达式解析计算机语言会给你带来麻烦。你需要一个真正的解析器。如果你解析的是php,使用github.com/nikic/PHP-Parser

标签: php regex explode


【解决方案1】:

回答您的问题:要使用不在双引号或单引号内的分号分隔一行,您可以使用以下正则表达式:

(?:'[^']*'|"[^"]*")(*SKIP)(*FAIL)|;

它会在"..."'...' 之外找到;

demo

但是,请考虑将appropriate tools 用于您正在处理的任务。

【讨论】:

    猜你喜欢
    • 2018-04-05
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多