好的,尝试更改字符串,如下所示:
[topic]=2[board]=2
返回此内容:
[topic][board]=2
在上面的情况中,我将处理一个等于[topic]
的字符串变量和另一个等于[topic]=2[board]=2
的字符串变量
但是这需要针对所有情况进行...更多示例如下:
profile[area]=account[u]=1
应该返回:
profile[area][u]=1
在上面的情况中,我将处理一个等于profile
的字符串变量和另一个等于profile[area]=account[u]=1
的字符串变量
另一个例子:
moderate[area]=groups[sa]=requests
应该是这样的:
moderate[area][sa]=requests
在上面的情况中,我将处理一个等于moderate
的字符串变量和另一个等于moderate[area]=groups[sa]=requests
的字符串变量
另一个:
[board]=1
应该返回:
[board]=1
在上面的情况中,我将处理一个等于[board]
的字符串变量和另一个等于[board]=1
的字符串变量
基本上,它需要能够做的是除去仅在第一个和第二个括号的括号之间的文本之间的文本(如果仅存在第二个括号)。它不应该影响任何第三,第四,第五支架。只有第一个和第二个括号。
有人可以帮我一把吗?
谢谢:)
答案 0 :(得分:2)
这是一个有效的正则表达式:
(?<=\])\=[^\[\r\n]*(?=\[)
那个\ r \ n可能需要在PHP中更改为\ Z,因为你不会处理换行符,而是处理字符串的结尾。
所以,比如:
preg_replace("/(?<=\])\=[^\[\Z]*(?=\[)/", "", $target);
修改强>
以下是对此处发生的情况的细分:
(?<-\])
确保在匹配的表达式
[
个字符
\=
匹配=
个字符
[^\[\Z]*
匹配所有字符,直到找到[
或字符串的结尾(\Z
)
(?=\[)
确保匹配的表达式
[
答案 1 :(得分:0)
另一个正则表达式,旨在与preg_replace()
preg_replace('/^([a-z]+)?(\[[a-z]+\])(.*)(\[(.*))$/Uis', '$1$2$4', $yourData);