python分布式爬虫搜索引擎实战-1-正则表达式
程序员文章站
2022-05-23 10:54:18
...
正则表达式
比如:
一天前
中提取出1
特殊字符:
-
^
:代表以该字符为开头。如^b
就是b为开头。 -
.
: 代表任意一个字符。如^b.
就是b开头后面一个字母任意 -
*
: 代表前一个字符可以出现任意次(0个也可以)。如^b.*
就是b开头后面可有任意数个任意字母 -
$
: 代表前一个字符为结尾符合。 如:.*3$
就是以3为结尾的任意字符串 -
?
:非贪婪匹配。一般情况从右往左匹配正则,?
可以实现从左往右,非贪婪指遇到第一个就结束。.*?(b.*?b).*
就是首先开始的b和b之间的字符串 -
+
: 代表前面的字符至少出现一次(0个到无数个)。如b.+
指b后面至少一个任意字母 -
{2}
{2,5}
{2, }
: 代表前面的字符出现2次。代表前面的字符出现2到5次. 代表前面字符出现2次及两次以上 -
|
:代表或
的意思 b|c,从左到右,看先匹配到那个。 -
()
: 代表子字符串。如((a|b)123)代表group(1)为外层括号里的a123|b123;group(2)为内层括号值 -
[]
: 代表[]内的字符满足任意一个都可以。1 :[abcdefg]123代表以里面任意abcdefg中一个字母开头的都可以
2:[0-9]
[a-z]
代表可以为0-9范围内任意一个字符,代表a-z范围任意一个字符 3: [^1]^
为取反,只要不等于1就可以
注: 进入[]的字符都不再具有特殊含义[.*]就指匹配到.或者*
-
\s
\S
: 1:\s
代表匹配到一个空格。2:\S
代表匹配到一个非空格 -
\w
\W
: 匹配单词字符[a-zA-Z0-9_]/非单词字符 -
[\u4E00-\u9FA5]
: 匹配中文汉字 -
\d
: 匹配数字
example 提取出生日期
# _*_ coding: utf-8 _*_
__author__ = 'mtianyan'
__date__ = '2017/3/26 13:13'
import re
line = "XXX出生于2001年6月"
# line = "XXX出生于2001/6/1"
# line = "XXX出生于2001-6-1"
# line = "XXX出生于2001-06-01"
# line = "XXX出生于2001-06"
regex_str = ".*出生于(\d{4}[年/-]\d{1,2}([月/-]\d{1,2}日|[月/-]\d{1,2}|[月/-]$|$))"
match_obj = re.match(regex_str, line)
if match_obj:
print (match_obj.group(1))
上一篇: ROS回顾学习(1)-----catkin_make编译
下一篇: 相对路径转绝对路径
推荐阅读
-
爬虫实战在 Python 中使用正则表达式
-
Python爬虫实战之Requests+正则表达式爬取猫眼电影Top100
-
2017年最新Python3.6网络爬虫实战案例基础+实战+框架+分布式高清视频教程
-
荐 python爬虫实战1-基础代码篇1
-
python分布式爬虫搜索引擎实战-4-scrapy框架初体验
-
python分布式爬虫搜索引擎实战-5-右键即可的爬虫利器xpath爬取伯乐在线实例
-
学习python-day003---转自Python分布式爬虫打造搜索引擎Scrapy精讲
-
python分布式爬虫搜索引擎实战-1-正则表达式
-
Python分布式爬虫Scrapy打造搜索引擎2020
-
Python爬虫实战之Requests+正则表达式爬取猫眼电影Top100