【发布时间】:2017-08-30 04:05:49
【问题描述】:
我正在尝试替换可能出现多次的字符串。它以特定的字符串开头和结尾:
some text
more text here
[li]......[/li]
[li]......[/li]
[li]......[/li]
我可以检查 [li] 之前的字符串,如果 [li] 之前的字符串是字符串但不是 [li] strong>[/li] 然后用相同的模式替换它,除了换行符用正则表达式加倍?
我要检查的内容:
some strings
\n // Replace this one
[li]some strings[/li] \n
[li]some strings[/li] \n // This one is not replaced, because the string before this [li] were [/li]
[li]some strings[/li] \n
some strings
如果条件满足,就变成这样
some strings
\n\n // With this one instead
[li]some strings[/li] \n
[li]some strings[/li] \n
[li]some strings[/li] \n
some strings
这是我目前的代码,但我无法得到我想要的:
$data = preg_replace("/(.*)\([\n]/\[li\]/s", "[result]", $data);
【问题讨论】:
-
@WiktorStribiżew 哇,它就像一个魔术。这就像我想要的,它给了我解释,谢谢!
-
@WiktorStribiżew,你能把它放在答案上吗?所以我可以标记为完成
-
完成,请看下面的解释。
-
很高兴它对你有用。如果我的回答对您有帮助,也请考虑投票(请参阅How to upvote on Stack Overflow?)。
标签: php regex codeigniter replace preg-replace