2013-08-17 76 views
-1

我該如何實現這個跳過字符:! : \ & '在任何位置?如何實現它跳過字符

preg_match_all('/#(\w+)/', $string, $matches); 
+1

你是什麼意思「跳過」字符?正則表達式只會尋找你實際搜索的東西。你可以發佈樣本輸入和期望的輸出嗎? – erewok

+0

@erewok他逃脫了,例如:#test(correct)#!test(incorrect)。 – nuuby

+0

你在做什麼編程語言? – erewok

回答

0

如果你使用的模式類似以下,根據實施,你應該能夠找到所有這些字符和替代出來:

$teststring = "#!TEST'\&" 
$pattern = (!|&|\\|\') 
$replacement = '' 
echo preg_replace($pattern, $replacement, $teststring) 

應該輸出:

'#TEST' 
+0

我只是想逃避不只是替換... – nuuby

+0

所以你想在角色前添加一個反斜槓?你可以通過設置'$ replacement ='\\ $ {1}''來實現。 – erewok

+0

不完全,我真的需要一個正則表達式來做到這一點...但感謝您的幫助! – nuuby

0

首先,剝離所有不需要字符的字符串。像[!:\\&']這樣的正則表達式替換是實現此目的的一種方法,但使用編程語言的字符串API可能有更好的方法。

然後使用您的正則表達式解析生成的字符串。

+0

例子?我是正則表達式的初學者。 ;) – nuuby