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

Php 正则表达式-所有语言都一样吗?,php,javascript,regex,Php,Javascript,Regex,不同语言之间的regexp是否相同 比如说。如果我想在javascript中使用它,我必须专门搜索javascript的regexp。因为我有一些备忘单。它只是说正则表达式 我想知道我是否可以在所有语言上使用它,php、javascript等等。正则表达式synax在不同语言之间略有不同,但大部分细节是相同的。一些正则表达式实现在处理方式以及某些特殊字符序列的含义上支持略有不同的变化 谷歌是你最好的朋友。用你选择的语言在谷歌上搜索regex。你可能想先看看。那是我做regexping时的圣经 现

不同语言之间的regexp是否相同

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


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

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


谷歌是你最好的朋友。用你选择的语言在谷歌上搜索regex。

你可能想先看看。那是我做regexping时的圣经

现在,正则表达式在任何地方都应该是一样的,至少在基本原理上是一样的,但是在某些情况下,不同的编译器(或者解释器,如果您愿意的话)的正则表达式是不同的

这可能是您搜索特定模式的方式,让我们以
\w
为例,即:
任何字母数字或下划线字符
在c#中,但javascript中的模式可能不同


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

基本原理基本相同,但支持该语言的引擎之间存在一些差异,PHP和JavaScript不同,因为PHP使用PCRE(与Perl兼容的正则表达式)

PHP也有与POSIX兼容的正则表达式引擎(
ereg_quot/code>*函数),但这是不推荐的

如果你还没有用,我建议你试试。它可以在几个正则表达式引擎之间转换


您可以找到。

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

例如,grep、vim和perl regexs在如何处理()之类的事情上有所不同,以便在search&replace中分组/捕获用于反向引用的模式。IIRC,Perl直接使用它们,而grep和vim要求对它们进行转义

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

我不完全确定这是否是一种正确的总结方式,但基本上有两大类regex-Posix(grep和类似工具)和Perl-compatible(略有变化)


我发现一个有用的工具是。

为了澄清,\n在任何正则表达式解释器中,都会找到一个单词字符(字母数字和下划线字符),而不是整个单词。但我想这只是用于windows的?我在mac上