我想更好地学习正则表达式,这对我来说是一个更自然的选择。通常可以通过正则表达式解决的问题我甚至不考虑使用它。
有人可以指导我提供具有挑战性的正则表达式问题的资源,就像python challenge中的那种类似这样的东西,但更多的是像时尚这样的谜语:
给定一个包含大写和小写字母的文本文件,匹配完全 3个大写字母包围的所有小写字母。
这只是其中一个问题的问题......如果问题不如示例那么明显,那就没问题了。
编辑只是为了澄清......我不是在寻找软件,我正在寻找问题。但我会把它变成一个wiki,这样我们就可以在这里获得尽可能多的资源。
该死的...... regexlib
上有很多东西答案 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。