php用正则表达抓取网页中文章(正则表达式就是匹配模式查询结果及总结!(上才艺) )
优采云 发布时间: 2022-02-07 08:13php用正则表达抓取网页中文章(正则表达式就是匹配模式查询结果及总结!(上才艺)
)
1、 什么是正则表达式
正则表达式也称为正则表达式,通常用于检索和替换与某种模式(规则)匹配的文本。
说白了就是起到匹配结果集的作用,从结果集中查询到开发者想要的数据。
MySQL中正则表达式中需要用到的关键字有:REGEXP
事不宜迟,让我们有才华!!!
对于MySQL使用正则表达式,很多猿友一开始会想到MySQL的模糊查询
SELECT * FROM user WHERE user_name LIKE '%张三';
是的,模糊查询确实可以做常规可以做的事情,但它只能做两个方面。
% : 匹配多个字符 _ : 匹配一个字符
正则可以进行的匹配条件还有很多,重点来了!重点来了!重点来了!
二、正则表达式1、^ :匹配输入字符串的起始位置,即匹配的数据以指定字符开头。
SELECT product_name FROM product WHERE product_name REGEXP '^小米';
#匹配以“小米”开头的数据
搜索结果
2、$ :匹配输入字符串的结束位置,即匹配的数据以指定字符结束。
SELECT product_name FROM product WHERE product_name REGEXP '小米$';
#匹配以“小米”结尾的数据
搜索结果
3、。: 匹配除 '\n' 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用类似 '[.\n]' 的模式。
SELECT product_name FROM product WHERE product_name REGEXP '.小米.';
#范围[0,1],相当于模糊查询的 '_小米_'
搜索结果
4、[…] :字符的集合。匹配任何一个收录的字符。例如,'[abc]' 可以匹配 "plain" 中的 'a'。
SELECT product_name FROM product WHERE product_name REGEXP '[小米]';
#匹配'小'或者'米'任意一个字符
搜索结果
5、[ ^ … ] : 与 […] 相反
SELECT product_name FROM product WHERE product_name REGEXP '[^小米]';
#不匹配’小米‘
搜索结果
6、| : 多选匹配模式
SELECT product_name FROM product WHERE product_name REGEXP '小米|仪器';
#匹配的数据中存在'小米'或者'仪器'
搜索结果
7、* : 匹配前面的子表达式 0 次或多次,相当于 {0,N}
SELECT product_name FROM product WHERE product_name REGEXP '仪器*';
搜索结果
8、+ :匹配前面的子表达式出现一次或多次,相当于{1,N}
SELECT product_name FROM product WHERE product_name REGEXP '仪器+';
搜索结果
9、{n} : 设置数据匹配的次数
SELECT product_name FROM product WHERE product_name REGEXP '小米{1}';
#匹配数据集中包含一个小米字段的数据
搜索结果
10、{n,m} :设置最小匹配数和最大匹配数
SELECT product_name FROM product WHERE product_name REGEXP '小米{1,4}';
#匹配的数据中至少有一个'小米'字段或者最多只有四个'小米'字段
搜索结果
三、总结
正则表达式存在于每一种编程语言中,为查找数据提供了一种高效的方式,节省了开发人员处理数据的时间,但不正确的使用正则表达式也会带来难以查找的数据查询错误。如此易于使用和方便的前期是您必须正确使用它。
以上均为个人理解,有错误希望大家指出。
创作不易,希望能给个赞和鼓励!!!