2014-09-05 354 views
2

我試圖模仿preg_qoute的功能,而不逃避字符,: () < >正則表達式正則表達式模仿正則表達式

到目前爲止,我已經能夠拿出,[.\\+*?[^\\]${}=!|]我會使用它像下面,

preg_replace('#[.\\+*?[^\\]${}=!|]#', '\\\\$0', '(hello)/(goodbye/(<still there>))'); 

問題是,它是轉義/性格和我得到一個轉義符異常。

任何想法?

謝謝。

+0

這不是逃避'/'因爲它不是在字符集..定義 – hwnd 2014-09-05 21:42:20

+0

任何關於幫助?我已經嘗試過'\ /'但我無法正常工作 – SolarSync 2014-09-05 21:50:01

+0

謝謝,那真是太棒了。 – SolarSync 2014-09-05 21:57:43

回答

3

我會這樣寫出來,將/-添加到字符集中。雖然我不清楚你爲什麼要模仿這個功能,並且讓其他角色不需要轉義。

preg_replace('~[.+*?^$\\|[\]{}=!/-]~', '\\\\$0', '. \ + * ? [^] $ { } = ! | - () < > :'); 

輸出

\. \ \+ \* \? \[ \^ \] \$ \{ \} \= \! \| \- () < > : 
+0

我正在嘗試動態構建處理命名組等的正則表達式。謝謝你的大力幫助,我嘗試了投票,但它不會讓我。 – SolarSync 2014-09-05 22:15:34