【发布时间】:2016-07-22 22:52:20
【问题描述】:
这是我的字符串:
$str="[url=/someurl]Click Here[/url] [url=/someurl]Click Here2[/url]";
这是我的代码:
$str=preg_replace('/\[url=(.+?)\](.+?)\[\/url\]/', '<a href="\1" style="text-decoration:none;color:#336699">\2</a>', $str);
我的输出转换了第一个 url bbcode 样式部分,但第二个也没有转换。
我正在寻找的是一个全局正则表达式替代品。 正则表达式不太好,所以我真的不知道该怎么办目的是让preg_replace 占both bbcode urls
更新
这是我的代码:$str=preg_replace('/[url=(.+?)](.+?)[\/url]/s', '<a href="\1" style="text-decoration:none;color:#336699">\2</a>', $str);
这里是字符串:
$str="ou can call my cell phone, email or text message me via my contact info on my profile.
[url=/profile/number]Click Here[/url]
Hope to hear from you all soon !!
[url=dasasdasd]asdasdasd[/url]";
这是我的功能:
function bbcode($str) {
$str=preg_replace('/\[url=(.+?)\](.+?)\[\/url\]/s', '<a href="\1" style="text-decoration:none;color:#336699">\2</a>', $str);
return $str;
}
【问题讨论】:
-
我无法重现您当前示例的问题。
-
@CasimiretHippolyte 中间有一些新行和措辞会改变结果吗?
-
是的,因为点
.默认情况下不匹配换行符。要更改此行为,请添加s修饰符。 -
不,我不会,因为这个问题被问了很多很多次。
-
您最近的更新、以前的更新、评论和第一个代码示例都冲突。请准确地说明你有什么。
标签: php regex preg-replace bbcode