1
67
你买 RegexBuddy 使用它内置的 debug feature . 如果你一年和regex一起工作两次以上,你很快就能赚回这笔钱。regexbuddy还将帮助您创建简单而复杂的正则表达式,甚至可以用多种语言为您生成代码。
另外,据开发人员说,这个工具在 Linux when used with WINE 。 |
2
51
使用Perl5.10,
$ perl -Mre=debug -e'"foobar"=~/(.)\1/' Compiling REx "(.)\1" Final program: 1: OPEN1 (3) 3: REG_ANY (4) 4: CLOSE1 (6) 6: REF1 (8) 8: END (0) minlen 1 Matching REx "(.)\1" against "foobar" 0 <> <foobar> | 1:OPEN1(3) 0 <> <foobar> | 3:REG_ANY(4) 1 <f> <oobar> | 4:CLOSE1(6) 1 <f> <oobar> | 6:REF1(8) failed... 1 <f> <oobar> | 1:OPEN1(3) 1 <f> <oobar> | 3:REG_ANY(4) 2 <fo> <obar> | 4:CLOSE1(6) 2 <fo> <obar> | 6:REF1(8) 3 <foo> <bar> | 8:END(0) Match successful! Freeing REx: "(.)\1"
还有,你
可以
向正则表达式中添加空白和注释,使其更具可读性。在Perl中,这是通过
|
3
29
|
4
28
当我被一个正则表达式卡住时,我通常会这样说: https://regexr.com/ 它非常适合快速检测出问题的地方。 |
5
18
|
6
13
我认为没有。如果你的regexp太复杂,并且有问题到需要调试器的地步,你应该创建一个特定的解析器,或者使用另一个方法。它将更具可读性和可维护性。 |
7
11
有一个很好的免费工具, the Regex Coach . 最新版本仅适用于Windows;其作者Edmund Weitz博士停止维护Linux版本,因为下载它的人太少,但在下载页面上有一个旧版本的Linux。 |
8
8
我刚刚看到了regexp::debugger的创建者damian conway的演示。 非常令人印象深刻的东西:运行在原地或使用命令行工具(rxrx),以交互方式或在一个“记录”的执行文件(存储在json中),在任何点向前或向后跨一步,在断点或事件上停止,彩色输出(用户可配置),regexp上的热图和优化字符串,等等…… 可在CPAN上免费获得: http://search.cpan.org/~dconway/Regexp-Debugger/lib/Regexp/Debugger.pm |
9
7
|
10
6
我用自己的眼睛调试正则表达式。所以我用
|
11
5
至于我,我通常使用pcretest实用程序,它可以转储任何正则表达式的字节码,而且通常更容易阅读(至少对我来说)。例子:
|
12
3
|
14
3
如果你是一个Mac用户,我刚刚遇到一个: http://atastypixel.com/blog/reginald-regex-explorer/ 它是免费的,使用起来很简单,它对我掌握regex有很大的帮助。 |
15
2
|
16
2
使用pcres这样的符号编写reg-exe就像编写汇编程序:如果你能在头脑中看到相应的有限状态自动机,那就没问题了,但是很快就很难维护。 不使用调试器的原因与不使用带有编程语言的调试器的原因大致相同:您可以修复本地错误,但它们不会帮助您解决导致您首先出现本地错误的设计问题。 更具反射性的方法是使用数据表示在编程语言中生成regexp,并有适当的抽象来构建它们。 Olin Shiver's introduction to his scheme regexp notation 对设计这些数据表示所面临的问题进行了极好的概述。 |
17
2
我经常使用pCyTest--几乎没有一个“调试器”,但它只适用于文本SSH连接,并解析我需要的正则表达式:我的(C++)代码链接到LIPPCRE,所以在什么是魔术和什么不是什么细微差别方面没有困难。 总的来说,我同意上面提到的那个人,他需要一个regex调试器是一种代码味道。对我来说,使用正则表达式最困难的通常不是正则表达式本身,而是使它们工作所需的多个引用层。 |
18
2
|
19
2
我使用RX工具包 ActiveState Komodo . |
20
1
|
21
0
对我来说,在看了regex之后(因为我相当流利,而且几乎总是使用/x或类似的代码),如果我不确定我是否会进行一些退化匹配(即过度回溯的东西),我可能会调试而不是测试,看是否可以通过修改greedyness来解决这些问题。例如运算符。 为此,我会使用上面提到的方法之一:pcretest、regexbuddy(如果我当前的工作场所有许可证)或类似的方法,如果我在c regexes工作,有时我会在linqpad中计时。 (Perl技巧对我来说是一个新的技巧,因此可能也会将其添加到我的regex工具包中。) |
lonix · 使用sed从JSON中提取非贪婪正则表达式 1 年前 |
Dima Malko · 如何在指定符号前添加符号? 2 年前 |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
Katia · 根据特定规则进行多行匹配 2 年前 |
MHA · Pandas str.extract()以字母结尾的数字 2 年前 |
Slava Vir · 如何查找后面“/”之间的最后一组 2 年前 |