【发布时间】:2011-09-24 20:10:14
【问题描述】:
我的字符串格式不正确,正在尝试纠正它。字符串的一个例子是:-
A 某人(美国)B 没人(美国)
我正在尝试将其更正为:-
A 某人(美国) B 没人(美国)
我正在使用下面的代码来匹配“)”后跟一个大写字母,并使用 php 的 preg_replace 函数进行匹配并添加空格。但是我在正则表达式上完全是垃圾,无法在正确的位置添加空间。
$regex = "([\)][A-Z])";
$replacement = ") $0";
$str = preg_replace($regex, $replacement, $output);
谁能推荐一个更好的方法?我意识到空间没有添加正确,因为 $0 包含我匹配的数据,有没有办法操纵 $0?
【问题讨论】:
-
$0 是捕获组零,即
([\)][A-Z]),只需像这样移动括号[\)]([A-Z])并使用 $1 我认为。 -
我不认为有一个捕获组 $1,我已经尝试过了,它切断了大写字母,因此产生了 A Somebody(US)Nobody(US) 的输出。跨度>
标签: php regex string preg-replace