[正则]常用到的正则表达式
列举一些经常用到的正则表达式,适用于JS与PHP(PHP中不支持/g,应替换为preg_match_all)
常用正则表达式
将JSON转为字符串匹配图片地址
在使用VUE开发时,遇到这个问题,由于后台同学不给力,很多地方需要在浏览器端进行处理。
let json = {
"shareimg": "http://vip.qdxin.cn/lin/wb/imgs/share.jpg",
"cover": "http://vip.qdxin.cn/lin/wb/imgs/cover.jpg",
"cover_arrow_color": "#fff",
}
// 将json转化为字符串
let allStr = JSON.stringify(json);
// 匹配模式
let pattern = /((http|https):\/\/)+(\w+\.)+(\w+)[\w/.-]*(jpg|gif|png)/gi;
或者 /http[s]?:\/\/[\w.\/]+\.(jpg|png|gif)/i
let matches = allStr.match(pattern);
console.dir(matches);
=》[
0: "http://vip.qdxin.cn/lin/wb/imgs/share.jpg"
1: "http://vip.qdxin.cn/lin/wb/imgs/cover.jpg"
]
匹配页面中的描述和关键词
使用PHP的file_get_contents()获取页面的HTML字符串,需要匹配其中的描述和关键字
<title>青岛市体育局:以人民为中心 办人民满意体育 - 信网</title>
<meta name="keywords" content="青岛财经网站,青岛新闻,信网,青岛生活">
<meta name="description" content="办实事、解难题,青岛体育聚焦民生,回应社会关切,增强群众的获得感">
<meta http-equiv="Cache-Control" content="no-transform" />
$pattern_k = '/<meta name="keywords" content="([\w\W]*?)">/';
$pattern_d = '/<meta name="description" content="([\w\W]*?)">/';
preg_match($pattern_d, $content, $mathes);
var_dump($mathes); =>
array(2) {
[0]=> string(132) ""
[1]=> string(96) "办实事、解难题,青岛体育聚焦民生,回应社会关切,增强群众的获得感"
}
保证字符串中全是数字
let pattarn = /^\d[0-9]*$/g;
以数字开头,以数字结尾,中间1个或者没有数字,可以用于匹配url中查询字符串的id。
常用的知识点
? 这个元字符表示的意思
?这个元字符表示的意思很多,一定要区分开。有这么几种意思:
a.作为量词,跟在一个字符或子表达式后面表示可出现0或1次。
b.表非贪婪模式,跟在量词元字符后面,如??、*?、+?
c.在前后向查找里使用,如(?=)、(?<=)、(?!)
d.表逻辑判断、条件。