我在问这个问题,因为我注意到RegEx在不同语言之间的语法有些细微的差异。我想知道是否有一个RegEx标准被维护在某个地方?如果是这样,我在哪里可以找到这份文件。另外,如果我在.NET中创建RegEx表达式,是否保证与100%兼容的表达式以及其他语言(如Perl,Javascript或Java)一起工作?最后,在使用正则表达式时,是否有任何“最佳实践”可以帮助使其在其他平台语言中更易于维护?不同语言的RegEx标准
10
A
回答
11
一个最老的集标准化的正则表达式的是POSIX BRE(基本正则表达式)和ERE(扩展正则表达式),Regular Expressions下记录。
其他语言可以定义他们自己的标准。例如,C++ 2011有一个在第28章中定义的正则表达式库(约46页标准)。 Perl定义了它的正则表达式。其他语言来自这些来源和其他语言。 Lex和Flex使用他们自己的一组正则表达式。 Sed在正则表达式上使用它自己的变体。 Java,JavaScript和...定义它们自己的版本,有时使用PCRE(Perl兼容正则表达式)作为其设计的基础。一些细节受正在使用正则表达式的语言提供的功能的影响。
杰夫·弗里德的书Mastering Regular Expressions涵盖了很多套不同的正则表达式的,确定什么是共同的,什么是不同的。
0
不,没有这样的标准。当然有PCRE,POSIX BRE,POSIX ERE,...
但实际上会有任何语言的“小”的差别。您可以在转播非常基本的东西对大多数口味,像.
任意字符或量词+*?
,字符类也很常见,但它已经开始在预定义类,如\w
,是它支持呢?或基于ASCII或Unicode?
一个很好的帮助这里是flavor comparison on regular-expressions.info通过Jan Goyvaerts。
0
相关问题
- 1. 不同的语言如何在标准库中实现排序?
- 2. 标准化语言转换?
- 3. iOS标准元素语言
- 4. 跨语言编码标准?
- 5. Python不是标准化语言吗?
- 6. 多语言标签 - 不同标题
- 7. 按照不同的标准分开的PHP REGEX
- 8. 不同语言
- 9. 不同的语言
- 10. 不同语言的元标记
- 11. 当语言符合功能语言的标准吗?
- 12. 没有标准库的语言引擎
- 13. 用不同语言发言
- 14. 使用内部连接标准语言
- 15. JPA查询语言标准构建器
- 16. 编程语言,这些标准
- 17. Lua是否有语言标准?
- 18. 什么语言会取代XSL标准?
- 19. 标准报告生成语言
- 20. Dart语言标准安装目录?
- 21. 如何获得Verilog语言标准?
- 22. C语言。从标准输出读取
- 23. Xcode项目:不同的语言,不同的目标
- 24. 针对不同语言的不同应用徽标
- 25. 不同语言的页脚
- 26. 不同的语言资源
- 27. SharedPreferences和不同的语言
- 28. DataGridView中的不同语言
- 29. 支持不同的语言
- 30. 不同语言的用户
投票您的参考弗里德尔的书。 – jlmcdonald
Jeff Friedl的书+1。还可以看看http://en.wikipedia.org/wiki/Comparison_of_regular_expression_engines进行比较。对于大多数实际用途,我期望您的.Net,Java和Perl正则表达式可以兼容。如果你的正则表达式很复杂,你可能会遇到问题(如递归)。 –
JavaScript和Java实现了PCRE的一个子集,JS实现了一个较小的子集。 – nhahtdh