【问题标题】:How do you write and test your regular expressions?你如何编写和测试你的正则表达式?
【发布时间】:2009-02-12 21:46:12
【问题描述】:

他们是否有任何向导或工具可以为 PHP 创建和测试正则表达式,因为这太难了 :( ? 谢谢:)

【问题讨论】:

标签: php regex testing wizard


【解决方案1】:

RegexBuddy 是为此目的而广受欢迎的应用程序。它还需要 40 美元,并且只能在 Windows 上运行。

有关强大的免费替代品,请参阅this answer

【讨论】:

  • RegexBuddy 太好用了,300 个字符都表达不出来。在几天之内偿还我支付的任何费用(30 美元或 50 美元)。
【解决方案2】:

reAnimator 是一个很好的工具,可以将你的正则表达式可视化为状态机——我发现它有时很有用。

Python 还允许你view a regex parse tree,如果你学会阅读它会很有帮助。

【讨论】:

    【解决方案3】:

    使用示例数据进行单元测试。创建两个数组,一个包含匹配数据,一个包含不匹配数据(如果需要测试边缘情况)。

    【讨论】:

    • 虽然我喜欢手动驱动的工具,例如 RegExpBuddy,以及可用于 IntelliJ 的插件,但进行一些单元测试以增加表达式保持有效的长期机会总是一个好主意。
    【解决方案4】:

    试用和错误成功。

    因为我花时间实际学习它,而不是依靠其他东西来为我做。

    同样适用于任何语言/工具 - 花一点时间来学习语法和一般精神,你会远远比依赖智能感知、代码提示等更有效率.

    【讨论】:

    • 听,听! (而且正则表达式语言并不像乍一看那么复杂......我在第一次尝试时就得到了正确的结果。)
    • 我经常在第三次尝试时就成功了,但我会在几年后回复您。
    【解决方案5】:

    有强大的online tools。离线,

    • The Regex Coach 是一个很棒的免费离线正则表达式工具,我经常使用它。
    • 我也喜欢RegEx Buddy,但它要 40 美元而且我很便宜。

    【讨论】:

      【解决方案6】:

      Expresso 是免费的 Windows 程序,对正在分析的正则表达式进行了很好的分解和解释。

      有关可立即从浏览器运行的在线工具,请参阅this answer

      【讨论】:

        【解决方案7】:

        我总是用这个:http://gskinner.com/RegExr/

        【讨论】:

        • 那是一个糟糕的工具,基于 Flash。幸运的是它现在已经死了。
        【解决方案8】:

        反复试验。

        还有print_r

        【讨论】:

        • 这听起来像是构建正则表达式最痛苦的方式。
        【解决方案9】:

        我很喜欢RegexPal,它简单明了,无需安装,可在线免费获取。

        【讨论】:

        【解决方案10】:

        在线...有一个带有 js/pcre/posix 实现的 ajax 正则表达式检查器,可以在您键入时进行检查.. 很酷。

        http://www.rexv.org

        【讨论】:

          【解决方案11】:

          Regex Buddy 太过分了(40 美元),而且只能在 Windows 上运行。早在 2009 年,这也许是个不错的选择。

          现在我们有免费的强大在线工具来构建和测试正则表达式。 Regex101 就是其中之一:

          • 让您选择 RE 引擎(PCRE、JavaScript、Python)
          • 为火柴着色
          • 即时解释正则表达式
          • 有调试器
          • 可以创建指向正则表达式游乐场的永久链接。

          更多正则表达式测试工具见my other answer

          【讨论】:

            【解决方案12】:

            我在测试正则表达式时通常使用Rubular。你也可以试试txt2re.com,它可以很方便地帮助你找出表达式,甚至可以生成相关的PHP代码。

            【讨论】:

              【解决方案13】:

              我曾经使用过正则表达式教练。但是因为它是基于 Perl 的,而且我大部分时间都在测试 .NET 正则表达式,所以我现在使用这个 online .NET regular expression tester

              【讨论】:

                【解决方案14】:

                我喜欢 emacs 重建器。

                【讨论】:

                  【解决方案15】:

                  我已经编写了自己的工具:Regular Expression Tester。与许多其他基于 Web 的工具不同,这个工具可以将正则表达式分解为标记并描述每个标记的作用。它非常适合检查新的表达方式,或者您很久以前写的但不太记得的表达方式。

                  【讨论】:

                    【解决方案16】:

                    既然您在谈论 PHP,您可能对Codebench 感兴趣。它是一个工具,不是专门用来分解正则表达式(你已经列出了很多),而是对它们进行基准测试。由于它相当通用,因此您还可以比较非正则表达式解决方案,因为本机字符串函数通常更快。此外,它还允许您针对多个主题(目标)进行基准测试。希望对您有用。

                    【讨论】:

                      【解决方案17】:

                      我正在使用单元测试。这样,我可以逐步增加我的正则表达式,确保我测试的第一个案例仍然通过。如果我必须修改它,我有我所有的测试来支持我。

                      【讨论】:

                        【解决方案18】:

                        这是另一个用于 Java 的在线正则表达式测试器:

                        http://www.fileformat.info/tool/regex.htm

                        【讨论】:

                          【解决方案19】:

                          对于在线测试 Regx http://www.regexr.com/ 使用此站点,如果您的 regx 在此工作,那么您可以使用 preg_match() 函数在 writecodeonline.com 上检查 php。

                          【讨论】:

                            【解决方案20】:

                            我写了一个python库来完成这个,它在cloudtb.re

                            text = 'so foo is the opposite of bar but without foo there is no bar?'
                            exp = '(foo).*?(bar)'
                            searched = cre.research(exp, text)
                            print(searched)
                            

                            【讨论】:

                              猜你喜欢
                              • 2010-10-04
                              • 1970-01-01
                              • 2010-10-12
                              • 1970-01-01
                              • 1970-01-01
                              • 2012-09-07
                              • 2011-09-28
                              • 2020-02-17
                              • 1970-01-01
                              相关资源
                              最近更新 更多