繁体   English   中英

正则表达式 - 所有语言都一样吗?

[英]regular expressions - same for all languages?

语言之间的正则表达式是否相同?

例如。 如果我想在 javascript 中使用它,我是否必须专门为 javascript 搜索正则表达式。 因为我有一些备忘单。 它只是说正则表达式。

我想知道我是否可以在所有语言、php、javascript 等上使用它。

基础知识大体相同,但由于 PHP 使用 PCRE(Perl 兼容正则表达式),因此语言的引擎、PHP 和 JavaScript 之间存在一些差异。

PHP 还具有与 POSIX 兼容的正则表达式引擎( ereg_ * 函数),但已弃用。

如果您还没有使用它,我建议您尝试RegexBuddy 它可以在多个 Regex 引擎之间进行转换。

您可以在此处找到Mac 上 RegexBuddy 的替代品

您可能想从这里开始。 当我做正则表达式时,那是我的圣经!

现在,正则表达式在任何地方都应该是相同的,至少是基本原理,但是在某些情况下,它会因编译器(或解释器)而异。

这些可能是您搜索特定模式的方式,让我们以\\w为例,即:c# 中的any alphanumeric or underscore character ,但 javascript 中的模式可能不同。

当您遇到这样的特殊情况时,您可能需要修改上面提供的链接。

正则表达式语法因语言而异,但大部分细节是相同的。 一些正则表达式实现支持在处理方式以及某些特殊字符序列的含义方面略有不同的变化。

谷歌是你最好的朋友。 使用您选择的语言搜索正则表达式。

正则表达式中最大的变化之一是特殊字符是如何转义/解释的。

例如,grep、vim 和 perl 正则表达式在如何处理诸如 ( ) 之类的事情上有所不同,用于分组/捕获模式以在搜索和替换中进行反向引用。 IIRC,Perl 直接使用它们,而 grep 和 vim 要求它们被转义。

此外,Perl 正则表达式可能支持比早期正则表达式引擎更多的功能。 在 Perl 中本来很简单的正则表达式在 grep 中是一个主要的 Pita。

我不完全确定这是否是一种正确的总结方法,但基本上有两大类正则表达式 - Posix(grep 和类似工具)和 Perl 兼容(有微小变化)。

我发现一个有用的工具是The Regex Coach - 交互式正则表达式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM