正则表达式 – 是否有任何正则表达式引擎可以提供他们正在做的事情的可见性?

前端之家收集整理的这篇文章主要介绍了正则表达式 – 是否有任何正则表达式引擎可以提供他们正在做的事情的可见性?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我使用的每种编程语言中,正则表达式支持(如果存在)基本上是一个黑盒子:有一些函数,如匹配,扫描等,它们采用表达式并返回一些东西 – 通常是字符串或数组 – 但他们没有报告他们在做什么时正在做什么.

我想知道,在任何合理流行的编程语言中,是否存在内置或库支持以匹配正则表达式并提供某种实时输出(例如,标准输出)以指示正在发生的事情.

更新:我感谢迄今为止的评论;但是,我不是要问一个显示正则表达式本身结构的工具,这就是debuggex.comregexper.com所做的事情(虽然这很酷!).我打算询问在表达式应用于某些输入的部分中提供信息.

这是一个假设的例子:假设我有“(foo | bar | baz)”的表达式,我对字符串“baz”进行测试;然后我想象的输出可能看起来像……

testing "foo" - nope
testing "bar" - nope
testing "baz" - found match

显然它看起来不那么像;但是你明白了.

几个正则表达式库的编写方式使您可以获取状态处理信息.特别是,Russ Cox写了一篇关于正则表达式的文章,其中包括一些代码和一个用于逐州转换的API:

http://swtch.com/~rsc/regexp/regexp1.html

本文中使用的代码被扩展为一个完整,简单的正则表达式库,它似乎提供了与您描述的类似的逐步输出

https://code.google.com/p/re1/

后来,代码更加完善,现在是Google维护(并在内部使用)的完整的正则表达式库:

https://code.google.com/p/re2/

编辑

如果在源代码中将DebugDFA设置为true来编译re2,则在处理期间将获得状态输出.然而,对于许多正则表达式而言,它可能与实际正则表达式不对应1-1,并且输出有点深奥.

原文链接:https://www.f2er.com/regex/356971.html

猜你在找的正则表达式相关文章