2009-12-29 32 views
6

是語言之間相同的正則表達式嗎?例如正則表達式 - 所有語言都一樣?

。如果我想在JavaScript中使用它,我將不得不專門搜索JavaScript的正則表達式。因爲我有一些備忘單。它只是說正則表達式。

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

回答

9

基本上大部分是一樣的,但是在PHP使用PCRE(Perl兼容的正則表達式)之後,PHP和JavaScript的語言有所不同。

PHP也具有POSIX兼容的正則表達式引擎(ereg_ *函數),但不推薦使用。

如果你還沒有使用它,我建議你試試RegexBuddy。它可以在幾個Regex引擎之間轉換。

你可以找到alternatives for RegexBuddy on Mac here

+0

但那只是我想要的窗戶?im on mac – ajsie 2009-12-29 07:39:59

+0

請點擊這裏:http://alternativeto.net/desktop/regexbuddy/ – 2009-12-29 07:59:11

1

正則表達式synax在各種語言之間略有不同,但大部分細節是相同的。一些正則表達式實現支持稍微不同的處理方式以及某些特殊字符序列的含義。

谷歌是你最好的朋友。 Google以您選擇的語言提供正則表達式。

2

您可能想從here開始。當我做正則表達式時,這是我的聖經!

現在,正則表達式在任何地方都應該是一樣的,至少是fundementals,但是有些情況下,它從編譯器到編譯器(或者解釋器,如果你願意的話)是不同的。

這些可能是您如何搜索特定模式,我們以\w爲例,即:seach for a word在c#中,但JavaScript中的模式可能不同。

當您遇到這樣的特殊情況時,您可能需要修改上面提供的鏈接。

+1

爲了便於說明,\ w在任何正則表達式解釋器中都會找到一個單詞**字符**(字母數字和下劃線字符),而不是整個單詞。 – BraedenP 2009-12-29 07:34:01

+0

啊。你是正確的先生! – 2009-12-29 07:35:11

0

正則表達式中最大的變化之一是特殊字符如何逃脫/解釋。

例如,grep,vim和perl正則表達式在如何處理類似()的分組/捕獲用於搜索&替換的反向引用的模式方面有所不同。 IIRC,Perl直接使用它們,而grep和vim要求它們被轉義。

另外,Perl正則表達式可能支持比以前的正則表達式引擎更多的功能。正則表達式在Perl中簡單易懂,是grep中的一個主要的皮塔餅。

我不完全確定這是否是一個正確的方法來總結它,但基本上有兩大類正則表達式 - Posix(grep和類似的工具)和Perl兼容(有小的變化)。

我發現有用的一個工具是The Regex Coach - interactive regular expressions