爬虫正则表达式常用符号及方法
在语言中,我们经常使用爬虫正则表达式。 在这篇文章中,小编就给大家介绍一下爬虫正则表达式的常用符号和方法,以及具体的用法。 如果您有兴趣,就来看看吧。
正则表达式不属于其中。 正则表达式是处理字符串的强大工具。 它们有自己独特的语法和独立的处理引擎。 它们可能不如 str 自己的方法那么高效,但是它们非常强大。 因此,正则表达式的语法在提供正则表达式的语言中是相同的。 唯一的区别是不同的编程语言实现支持不同数量的语法; 但不用担心,不支持的语法通常是不常用的部分。
1.常用符号
.: 匹配除换行符之外的任何字符\n
:匹配前一个字符0次或无限次
?: 匹配前一个字符0次或1次
.*:贪心算法,匹配尽可能多的字符
.*?: 非贪婪算法
():括号内的数据作为结果返回
2.常用方法
:匹配所有符合规则的内容,并返回包含结果的列表
:匹配并提取第一个符合模式的内容,并返回正则表达式对象
sub:替换符合规则的内容,并返回替换后的值
3. 使用示例
(1) 使用.的示例,匹配除换行符之外的任意字符\n
re #导入re库文件
a = 'xy123'
b = re.('x..',a)
打印b
打印结果为:['xy1'],每个 . 代表一个占位符
(2) 使用*的例子,匹配前一个字符0次或无限次
一个=''
b = re.('x*',a)
打印b
打印结果为:['x', '', 'x', '', '', '', '', '']
(3) 使用?的示例,匹配前面的字符0次或1次
a = 'xy123'
b = re.('x?',a)
打印b
打印结果为:['x', '', '', '', '', '']
(4).*的使用示例
=''
b = re.('xx.*xx',)
打印b
打印结果为:['']
(5).*?使用示例
=''
c = re.('xx.*?xx',)
打印 c
打印结果为:['xxIxx', '', '']
(6) ()的使用示例
=''
d = re.('xx(.*?)xx',)
打印
打印结果为:['我','爱','你'],括号内的数据为返回结果。
(7) re.S的使用示例
s = '''
'''
d = re.('xx(.*?)xx',s,re.S)
打印
打印结果为:['hello\n', 'world']。 re.S的作用是匹配时包含\n。
(8) 使用示例
s2 = 'dfd'
f2 = re.('xx(. ?)(. ?)xx',s2)
打印 f20
打印的结果是:love
此时,f2是一个包含元组的列表。 该元组包含两个元素。 元组中的两个元素是两个()匹配的内容。 如果 s2 包含多个 'xx(. ?)(. ?)xx',则 f2 包含多个元组;
(9) 使用示例
s2 = 'dfd'
f = re.('xx(. ?)(. ?)xx',s2).group(2)
打印 f
打印的结果是:love
.group(2)表示返回第二个括号匹配的内容。 如果是.group(1),则打印的是:I
(10) 使用 sub 的示例
s = ''
= re.sub('123(.*?)123','123%d123'%789,s)
打印
打印的结果是:
%d与C语言中的%d类似。 如果=re.sub('123(.*?)123','',s),输出结果也是:
(11)使用\d匹配数字的例子
a = '5fas'
b = re.('(\d+)',a)
打印b
打印结果为: ['', '555'] ,\d+ 可以匹配数字字符串;
以上是爬虫正则表达式的一些常见符号和语法。 希望对初学者有所帮助。