我知道以前有人问过这个问题,因为我刚刚读了这些答案,但仍然不能(正确地)让它工作。
我是regex的新手,正在尝试做一些听起来很简单的事情:
字符串将为:http://www.something.com/section/filter/colour/red-#998682/size/small/
我想做的是删除-#的preg_replace?因此,url如下所示:http://www.something.com/section/filter/colour/red/size/small/
所以我试着:
$string = $theURL;
$pattern = '/-\#(.*)\//i';
$replacement = '/';
$newURL = preg_replace($pattern, $replacement, $string);这是一种工作,但它不会停止。如果我在-#之后还有什么?它也删除了这一点。但我认为把/放在末尾会阻止它这样做?
希望有人能帮上忙,感谢您的阅读
发布于 2012-02-26 05:51:17
(.*)模式是gready的,这意味着它将匹配尽可能多的字符。要将所有内容都与第一个斜杠匹配,请使用(.*?)
$pattern = '/-\#(.*?)\//i';https://stackoverflow.com/questions/9448365
复制相似问题