regex - 免费提供、调试良好的正则表达式

标签 regex

我在看 ICU documentation并遇到了这个很好的建议:

For common tasks like this there are libraries of freely available regular expressions that have been well debugged. It's worth making a quick search before writing a new expression.



您通常引用哪些经过良好调试的正则表达式库?

我不太喜欢 http://regexlib.com表达式似乎没有那么好调试。除了用户评论和评级外,它似乎没有质量保证流程。

最佳答案

正则表达式库的问题,即使是那些经过良好测试的库,也没有在 上测试过。您的数据 或为 您的目的 .一个在其他人的数据上运行良好的正则表达式可能根本不适合你。

截屏于 http://www.regexbuddy.com/library.html确实显示了匹配无效日期(例如 2 月 30 日)的正则表达式。带有正则表达式的注释解释了这一点。不过,该评论在屏幕截图中并不完全可见。

这是一个完美的例子,说明为什么您必须小心使用正则表达式库和一般的复制粘贴编程。正则表达式 \d\d/\d\d/\d\d\d\d如果您知道文件从不包含类似 99/99/9999 的内容,那么从文件中提取日期可能是完全可以接受的。 .如果文件只包含有效日期和其他看起来根本不像日期的数据,那么简单的正则表达式就完全适用于提取日期。即使数据可能包含无效日期,您也可以选择允许正则表达式匹配它们并在处理正则表达式匹配的程序代码中过滤掉无效日期。

至于电子邮件地址,确定其是否有效的唯一方法是向其发送电子邮件并获得回复。即使没有退回邮件,也不意味着电子邮件已保存在某人的邮箱中,或者任何人都可以阅读。正则表达式可用于过滤掉明显不是电子邮件地址的内容,因此您可以跳过发送验证电子邮件的昂贵得多的步骤。正则表达式也可用于从文档或文件中提取电子邮件地址。但它确实不能说 invalid@regexbuddy.com 是否是一个有效的电子邮件地址。看起来是这样,但事实并非如此。发送到此地址的电子邮件将保存到 /dev/null .

关于regex - 免费提供、调试良好的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2686114/

相关文章:

java - 属性文件中的正则表达式为 False

python - 两个字符串之间的正则表达式匹配?

python - 从文本构建日期数组

用于分割的 Java 空格和换行符正则表达式

java - 检查所有字母在字符串中至少出现一次

php - 在 Javascript 正则表达式中排除文字反斜杠

javascript - 使用 RegEx 从 url 获取数据

JavaScript 正则表达式规则正在破坏 ASP.NET 缩小

regex - Perl 使用正则表达式捕获带有日志的组

php - 正则表达式替换一个或两个字母词