我有一个字符串不正确的形式,并试图纠正它。字符串的一个例子是:-
某人(美国)B没有人(美国)
我正试图将其更正为:-
A某人(美国)B没有人(美国)
我使用下面的代码来匹配")“,后面跟着一个大写字母,并使用php的preg_replace函数进行匹配并添加空格。然而,我在regex完全是垃圾,不能得到在正确的地方添加的空间。
$regex = "([\)][A-Z])";
$replacement = ") $0";
$str = preg_replace($regex, $replacement, $output);有人能提出更好的方法吗?我意识到这个空间并没有添加correclty,因为$0包含了我正在匹配的数据,有办法操纵$0吗?
发布于 2011-09-24 20:31:16
$str = preg_replace('/(?<=\))(?=\p{Lu})/u', ' ', $output);在结束括号(\))和大写字母(\p{Lu})之间插入一个空格。您不需要$0 (或$1等)因为您只是在两个字符之间插入某个位置,这个正则表达式正好匹配这个(零宽度)位置。看看查找断言。
发布于 2011-09-24 20:14:58
regex="(?<=\))[A-Z]"怎么样?
和replacement=" $0"
https://stackoverflow.com/questions/7541601
复制相似问题