PHP - preg_replace简化?

时间:2010-12-08 10:57:42

标签: php preg-replace

没有使用正则表达式替换很多,我不确定我是如何做到这一点是最好的方法。   我试图改变,例如:

'(.123.)' OR 123.)' OR '(.123

'.(123).' OR 123).' OR '.(123

必须是中间的int。

preg_replace('/\.\)/', ').',preg_replace('/\(\./', '.(',preg_replace('/(\.[0-9]+\.)|(\.[0-9]+|[0-9]+\.)/', '($0)',$str)));

我上面的代码工作,只是想知道是否有更好的方法来做到这一点

1 个答案:

答案 0 :(得分:1)

你可以简单地在两个替换中做更多的事情,一个用于数字之后(。在数字前面,一个用于。)吗?

$str=preg_replace('/\(\.(\d)/', '.($1', $str);
$str=preg_replace('/(\d)\.\)/', '$1).', $str);

甚至可以一次性完成这项任务,但看起来更加丑陋。在这里,我查找一个以(.开头的数字,可选地后跟.),或者可选地前面加(.,后跟.),然后用{{1}替换整个批次}} - 这会将.(number).转换为.(123,您可能想要也可能不想要...... {/ p>

.(123).