【问题标题】:PCRE Windows Command LinePCRE Windows 命令行
【发布时间】:2012-06-22 03:58:59
【问题描述】:

我在 PHP 的 PCRE 中发现了一个错误,但在我发布错误报告之前,我想通过 Windows 中的命令行测试相同的表达式,看看它是否有相同的错误。如果错误在 PCRE 本身,我需要在 PCRE 站点上发布报告,否则在 PHP 站点上。是否有任何工具可以使用我已经安装的库直接从 Windows 命令行运行 PCRE?

【问题讨论】:

  • 没有。 pcre 只是一个库,它没有“前端”。这是 PHP 的工作。
  • @MarcB 我要问的是有没有人写了一个使用我可以下载的 PCRE 库的“前端”?我找到了 pcretest,但我需要自己编译它,我不能这样做,因为我没有 C++ 编译器。

标签: windows command-line pcre


【解决方案1】:

好吧,无论如何,我还是根据我的最佳猜测在 PHP 上发布了这个错误(它是 PHP 还是 PCRE 错误?)某个好人用 pcretest 运行了有问题的正则表达式,发现它的行为符合预期(即给出了正确的错误) .所以,这个错误肯定是在 PHP 中!正则表达式(如果您想知道的话)是/\k/。它是无效的,因为它应该后跟一个命名的反向引用 (http://www.php.net/manual/en/regexp.reference.back-references.php),但是 PHP 5.4.4 允许它编译和运行。

我仍然无法在命令行上运行 PCRE(预编译的 Windows 二进制文件?)

【讨论】:

    【解决方案2】:

    您应该使用 Perl 脚本和 Perl 解释器来测试您的正则表达式。在 Windows 上,我建议安装 Cygwin(并且可以在 setup.exe 中为 Perl 解释器选择 Perl)。或者,如果您想要更精简的安装,请使用 StrawberryPerl:http://strawberryperl.com/

    我不建议使用纯命令行测试,因为 Windows 命令提示符容易出现转义错误。

    请注意,您需要使用 http://metacpan.org/pod/re::engine::PCRE 才能使您的测试合法

    【讨论】:

    • 我不会使用 Perl 的正则表达式库而不是 PCRE 吗?我正在尝试查看该错误是在 PCRE 中还是在 PHP 中。
    • ...你提到的 Perl PCRE 库似乎也很老了
    • 我链接的库最后一次更新是在 2011 年。如果您使用上述库,您将使用 PCRE 而不是 Perl 的正则表达式库。
    猜你喜欢
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-07
    相关资源
    最近更新 更多