首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨语言的RegEx标准

跨语言的RegEx标准
EN

Stack Overflow用户
提问于 2012-10-05 12:46:07
回答 3查看 6.1K关注 0票数 17

我之所以问这个问题,是因为我注意到不同语言之间的RegEx语法有一些细微的差异。

我想知道是否有某个地方维护的RegEx标准?如果是这样的话,我在哪里可以找到这个文档?另外,如果我用.NET创建一个RegEx表达式,同样的表达式是否保证是100%兼容的,并与其他语言兼容?

最后,当涉及到使用RegEx时,有没有什么“最佳实践”可以帮助使它在其他平台语言中更易于维护?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-05 13:01:29

POSIX BRE (基本正则表达式)和ERE (扩展正则表达式)是最早的标准化正则表达式之一,它们记录在Regular Expressions中。

其他语言可能会定义自己的标准。例如,C++ 2011在第28条中定义了一个正则表达式库(大约46页标准)。Perl定义其正则表达式。其他语言借鉴这些来源和其他来源。Lex和Flex使用自己的正则表达式集。Sed在正则表达式上使用自己的变体。Java,JavaScript,还有...定义他们自己的版本,有时使用PCRE (与Perl兼容的正则表达式)作为他们设计的基础。某些细节会受到使用正则表达式的语言所提供的功能的影响。

Jeff Friedl的书Mastering Regular Expressions涵盖了许多不同的正则表达式集,确定了哪些是常见的,哪些是不同的。

票数 17
EN

Stack Overflow用户

发布于 2012-10-05 13:56:29

不,没有这样的标准。当然还有PCRE,POSIX BRE,POSIX ERE,...

但事实上,在任何语言中都会有“微小”的差异。对于大多数风格,你可以依靠非常基本的东西,比如任何字符的.或量词+*?,字符类也很常见,但它已经从像\w这样的预定义类开始了,它到底支持吗?还是基于ASCII或Unicode?

这里有一个很好的帮助,那就是Jan Goyvaertsflavor comparison on regular-expressions.info

票数 0
EN

Stack Overflow用户

发布于 2012-10-05 13:56:42

最佳实践

避免使用positive-negative lookbehinds,在某些情况下还应避免使用lookaheads

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12739633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档