正则表达式匹配扩展名

正则表达式匹配扩展名

我用这个正则表达式

[^\/\.]+$

匹配.php

http://www.demo.com/profiles-forum/linda-blair.php

但它仅匹配php。我怎样才能包括点?

答案1

如果你只需要文件名,请尝试这个(对于 / 和 .php 之间)

([^\/]*)\.[^.]*$

来源 :没有扩展名的正则表达式文件名

或者使用PHP preg_match_all函数并将所有结果存储在变量中

<?php
$sites = array(
"http://www.demo.com/profiles-forum/linda.php",
"http://www.demo.com/profiles-forum/linda-blair.php",
"http://www.demo.com/profiles-forum/linda123_example.php");
foreach ($sites as $site){
preg_match_all('/(^http:\/\/www.demo.com\/profiles-forum\/)(.*).php/',$site,$res);
print_r($res[2][0]."<br>");
}
?>

输出:

linda
linda-blair
linda123_example

答案2

那是你要的吗:

[^/]+(?=\.[^.]+$)

返回文件名没有扩大。

演示与说明


如果你想匹配文件名扩展,使用:

[^/]+\.[^.]+$

演示与说明

相关内容