练习正则表达式

时间:2009-07-09 01:29:56

标签: regex resources

我想更好地学习正则表达式,这对我来说是一个更自然的选择。通常可以通过正则表达式解决的问题我甚至不考虑使用它。

有人可以指导我提供具有挑战性的正则表达式问题的资源,就像python challenge中的那种类似这样的东西,但更多的是像时尚这样的谜语:

  

给定一个包含大写和小写字母的文本文件,匹配完全 3个大写字母包围的所有小写字母。

这只是其中一个问题的问题......如果问题不如示例那么明显,那就没问题了。

编辑只是为了澄清......我不是在寻找软件,我正在寻找问题。但我会把它变成一个wiki,这样我们就可以在这里获得尽可能多的资源。


以下是迄今为止在问题集和软件以及我发现的其他内容方面给出的内容。

问题

Regex SW

该死的...... regexlib

上有很多东西

关于SO

的相关文章

7 个答案:

答案 0 :(得分:18)

在Stack Overflow上搜索 regex tagged questions 并尝试回答。

答案 1 :(得分:3)

我可以根据个人的经验建议不同的方法来练习正则表达式吗?

如何应用它,例如,你刚刚合并了一些代码,你遇到了一些你意外标记为已解决的冲突?如何找到所有文件冲突的地方?编写正则表达式来搜索代码中的冲突标记(<<<< ====等...)

另一个例子,有些人重构了一个你在代码中使用的类,它被称为foo.bar.baz;现在它是bar.baz.foo;编写正则表达式来查找并替换第一个的所有第一个。

这些示例可能与您的工作有关,也可能与您的工作无关,但我相信您将需要在一天中使用正则表达式来进行日常活动。当你遇到它时,勇敢地去使用正则表达式:)它会让你在开始时减慢一点但是一旦你变得更舒服,你就会实现你的目标。

答案 2 :(得分:2)

我强烈推荐Expresso(http://www.ultrapico.com/Expresso.htm),特别是如果你使用的是.NET。它既可以构建和分析正则表达式,也可以生成代码。这节省了很多很多小时。

答案 3 :(得分:1)

您可以在编程竞赛网站中找到一些宝石:here。当然,这些并不是特定于正则表达式,但肯定有一些解决方案属于这个领域。

答案 4 :(得分:1)

你可以尝试RegexCoach。它允许您针对自己的目标字符串以交互方式试验正则表达式。

答案 5 :(得分:1)

使用本网站学习正则表达式

   http://qntm.org/files/re/re.html

并且练习使用本网站

   http://www.regexr.com/

答案 6 :(得分:0)

在命令行(或面向shell的窗口编辑器,如Acme或Wily)工作,并使用sed和awk将您使用的数据从其原始格式转换为您希望看到它的格式,或者其他程序需要它的格式。由于sed和awk使用正则表达式来查找要处理的行(通过模式匹配),因此在学习这些工具的同时,您将发展自己的技能。

我建议在命令行工作,因为每个数据和脚本都有文本可以查找和处理,通常来自更大的文件。所以你也可以使用grep的正则表达式来减少要考虑的行数,但我通常只使用

sed -n -e '/regexp/p'

找到行,因为我可以稍后用替换

更新它
sed -e '/lineregexp/s,oldregex,newtext,'

对于非常高级的用法,您可以使用sed在运行时更新脚本,而不是在复杂的if / case语句或命令行选项中编码,甚至更改脚本的结构,但这超出了本答案的范围。 / p>

编辑:从第二个示例中删除了p。