我有这样的:正则表达式匹配和替换多个字符串
$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); –