正则表达式:以相反的顺序获取带有连字符的 url 的部分
Regex: Get parts of url with hyphens in reverse order
我 url 喜欢:
http://www.example.com/file/golf-background-loop-6863-thumb480x270.jpg
是否可以捕获由连字符分隔但顺序相反的单词?
- thumb480x270.jpg
- 6863
- 循环
- 背景
- http://www.example.com/file/golf
或者至少匹配最后两个:
- thumb480x270.jpg
- 6863
使用 String.prototype.split and Array.prototype.reverse 函数的简单解决方案:
var url = 'http://www.example.com/file/golf-background-loop-6863-thumb480x270.jpg',
parts = url.split('-').reverse();
console.log(parts);
理想情况下在 -
上拆分一定是最简单的解决方案。但以防万一你必须使用正则表达式
使用正则表达式获取最后两个词应该很容易
.*-(\w+)-([\w.:\/]+)$
替换为
-
php.net是你的朋友
$url = 'http://www.example.com/file/golf-background-loop-6863-thumb480x270.jpg';
foreach (array_reverse(explode("-", $url)) as $idx => $part) {
echo $idx + 1, ". ", $part, "\n";
}
我 url 喜欢:
http://www.example.com/file/golf-background-loop-6863-thumb480x270.jpg
是否可以捕获由连字符分隔但顺序相反的单词?
- thumb480x270.jpg
- 6863
- 循环
- 背景
- http://www.example.com/file/golf
或者至少匹配最后两个:
- thumb480x270.jpg
- 6863
使用 String.prototype.split and Array.prototype.reverse 函数的简单解决方案:
var url = 'http://www.example.com/file/golf-background-loop-6863-thumb480x270.jpg',
parts = url.split('-').reverse();
console.log(parts);
理想情况下在 -
上拆分一定是最简单的解决方案。但以防万一你必须使用正则表达式
使用正则表达式获取最后两个词应该很容易
.*-(\w+)-([\w.:\/]+)$
替换为
-
php.net是你的朋友
$url = 'http://www.example.com/file/golf-background-loop-6863-thumb480x270.jpg';
foreach (array_reverse(explode("-", $url)) as $idx => $part) {
echo $idx + 1, ". ", $part, "\n";
}