2012-10-11 73 views
0

我有這樣的正則表達式有人可以幫我改變這個正則表達式嗎?

/[^\w^\']+/i 

這裏是代碼爲它。

preg_replace('/[^\w^\']+/i', ' ', $text) 

我不擅長正則表達式。只有我知道的是,如果我用$ string文本變量中的這個字符串嘗試它。

我想在這裏做一個方程是E = mc2的

它刪除 「=」 從字符串。我希望它做它正在做的所有事情,但不要從字符串中刪除「=」。你能幫我改變這個正則表達式嗎?

更新 我討厭回答我自己的問題。但它可能會幫助別人。但是我得到了這個正則表達式的工作。哪個適用於所有其他測試用例。 由於 http://rick.measham.id.au/paste/explain.pl

/[^\w,=^\']+/i 
+0

請向我們展示如何使用正則表達式,並告訴我們您是要匹配還是替換。 –

+3

一個更完整的例子是必要的。上面的正則表達式匹配**不是一個單詞**或不是**反斜槓**。這意味着它將匹配= =,空格等? – Brett

+0

你的正則表達式基本上是否定字符類。請閱讀http://www.regular-expressions.info/charclass.html以瞭解如何適應它。 – mario

回答

0

http://refiddle.com/9w1

/[^\w^\'^=]+/ig

如果你想要它做雖然同樣動作,除了不匹配=,再加入^=到字符類?請注意,它現在也有g,因爲您似乎希望它是全球性的。

+0

謝謝,好像它會工作。 –

+1

你只需要一個脫字號:'[^ \ w \'=]'(請參閱我在Brett的問題下的評論)。而'g'標誌不在PHP中使用; 'preg_replace()'是全局的,除非你用'limit'參數指定。 –

0

如果你解釋你想完成什麼,這可能會有幫助嗎?

順便說一句,我是可怕的正則表達式用,並且發現這個工具非常有用:

Regex Buddy

只要記住,PHP喜歡包裹在斜線其正則表達式,所以你需要添加那些在正則表達式出現之後。

+0

RegexBuddy *很棒,但這不是一個答案。它應該作爲評論發佈,如果有的話。 –

相關問題