这是我正在使用的子字符串
[sitetree_link%20id=2]
我需要用空格替换[]之间所有出现的事件.但显然如果有[]括号之外,请不要管它们……
我现在正在学习正则表达式,但这个看起来很难.有人为此获得了超级聪明的正则表达式吗?
谢谢 :)
解决方法:
你可以试试这个
$result = preg_replace('/(\[[^]]*?)(%20)([^]]*?\])/m', '$1 $3', $subject);
说明
( # Match the regular expression below and capture its match into backreference number 1
\[ # Match the character “[” literally
[^]] # Match any character that is NOT a “]”
*? # Between zero and unlimited times, as few times as possible, expanding as needed (lazy)
)
( # Match the regular expression below and capture its match into backreference number 2
%20 # Match the characters “%20” literally
)
( # Match the regular expression below and capture its match into backreference number 3
[^]] # Match any character that is NOT a “]”
*? # Between zero and unlimited times, as few times as possible, expanding as needed (lazy)
\] # Match the character “]” literally
)