扫码关注官方订阅号
http://i2.xxx.com/wx/images_2016/monkey/m4_1e3thtr.png如上url,需要匹配_1e3thtr这个自动加上的随机版本号(位数可能不固定),正则应该怎么写,因为前面的文件夹路径可能包含下划线,所以需要匹配最后的一个下划线
光阴似箭催人老,日月如移越少年。
.*(_.*?)\.第一步:“.*”,匹配到底;第二步:括号里,“_”,回溯至最后一个下划线,接着“.*?”忽略优先,退出括号;第三步:“\.”,如果没匹配到下划线后面的第一个点号,回溯到“.*?”,他匹配一个,退出括号,再看看后面是不是点号,如果不是,再回溯,然后匹配一个,看看后面是不是点号,......,最后匹配一个点号,结束。然后“$1”获取结果。
.*(_.*?)\.
(_\w+)\. 下划线到小数点之间只识别数字和字母,就能配对到你想要的部分
(_\w+)\.
正则不会。。。 var last_pos = url.lastIndexOf('_'), sub_str1 = url.substr(0,last_pos), sub_str2 = url.substring(last_pos+1), sub_len1 = sub_str1.length - sub_str1.lastIndexOf('.') - 1, sub_len2 = sub_str2.indexOf('.');
if(sub_len1>=sub_len2) {
url.substr(last_pos,sub_len2+1); }else { url.substr(last_pos-sub_len1,sub_len1+1); }
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
.*(_.*?)\.第一步:“.*”,匹配到底;
第二步:括号里,“_”,回溯至最后一个下划线,接着“.*?”忽略优先,退出括号;
第三步:“\.”,如果没匹配到下划线后面的第一个点号,回溯到“.*?”,他匹配一个,退出括号,再看看后面是不是点号,如果不是,再回溯,然后匹配一个,看看后面是不是点号,......,最后匹配一个点号,结束。
然后“$1”获取结果。
(_\w+)\.下划线到小数点之间只识别数字和字母,就能配对到你想要的部分if(sub_len1>=sub_len2) {