我有這樣的:正則表達式匹配和替換多個字符串
$only_left_pattern = '/[^-{]\bleft\b/';
$subject = 'body {left: 24px;}\n p {right:30px;}';
$subject = preg_replace($only_left_pattern, 'right', $subject);
echo $subject;
我需要聲明,因爲我要匹配每個字符串的模式。 如果有辦法,我可以匹配的權利或左側,並根據該更換? 示例(語法從我的頭):
$right_left_pattern = '/[^-{](\bleft\b|\bright\b/)';
// if you found left replace with right, if you found right replace with left
// acrording to the order in the pattern
$subject = preg_replace($only_left_pattern, right|left, $subject);
就是我要問,如果我可以這樣做我用PHP或者只是用正則表達式的例子。
我想Dave的解決方案
$pattern = array('/[^-{]\bleft\b/','/[^-{]\bright\b/');
$replace = array('right','left');
$subject = 'body {left: 24px;} p {right: 24px;}';
$subject = preg_replace($pattern, $replace, $subject);
echo $subject;
,但它不工作,我測試了regex
沒有陣列,它的工作。
['preg_replace_callback()']( http://php.net/preg-replace-callback),儘管你也可以將數組傳遞給'preg_replace()'的第一個和第二個參數 - 但是我懷疑回調是你想要的。 – DaveRandom
你現在在問什麼? – Petah
thanks DaveRandom, tryed this did not work: $ pattern = array('/ [^ - {] \ bleft \ b /','/ [^ - {] \ bright \ b /'); $ replace = array('right','left'); $ subject ='body {left:24px;} p {right:24px;}'; $ subject = preg_replace($ pattern,$ replace,$ subject); –