正则表达式元字符的用法,看完秒懂


静态网页数据包含大量字符串,需要用到正则表达式匹配。本文对正则表达式的元字符的用法进行了整理。

1、\W和\w的用法

import re

str = '星期三wednesday3_@!'
r1 = re.findall('\w', str) # 匹配所有字母,数字,汉字,下划线
r2 = re.findall('\W', str) # 匹配所有非字母,数字,汉字,下划线
print(r1)
print(r2)

['星', '期', '三', 'w', 'e', 'd', 'n', 'e', 's', 'd', 'a', 'y', '3', '_']
['@', '!']

2、\s和\S的用法

import re

str = '星期三wednesday3_@!\n \t'
r1 = re.findall('\s', str) # 匹配空格、\r\n\t
r2 = re.findall('\S', str) # 匹配非空格、\r\n\t
print(r1) 
print(r2)

['\n', ' ', '\t']
['星', '期', '三', 'w', 'e', 'd', 'n', 'e', 's', 'd', 'a', 'y', '3', '_', '@', '!']  

3、\d和\D的用法

import re

str = '星期三wednesday3_@!\n \t'
r1 = re.findall('\d', str) # 匹配所有数字
r2 = re.findall('\D', str) # 匹配所有数字
print(r1)
print(r2)

['3']
['星', '期', '三', 'w', 'e', 'd', 'n', 'e', 's', 'd', 'a', 'y', '_', '@', '!', '\n', ' ', '\t'] 

4. ^和$的用法

import re

str = '星期三wednesday3_@! \n\t'
r1 = re.findall('^星期', str) # ^匹配字符串起始部分
r2 = re.findall('\t$', str) # $匹配字符串终止部分
print(r1)
print(r2)

['星期']
['\t']  

5. .、*、?的用法

import re

str = '星期三wednesdaywweeddnneessddaayy3_@! \n\t'
r1 = re.findall('w.e', str) # .号可以代替除了换行符(\n)以外的任何一个字符
r2 = re.findall('w?e', str) # ?号代表前面的字符可以出现1次,也可以不出现
r3 = re.findall('w*e', str) # *号代表前面的字符可以出现1次,也可以不出现,也可以出现很多次
print(r1)
print(r2)
print(r3)

['wwe']
['we', 'e', 'we', 'e', 'e', 'e']
['we', 'e', 'wwe', 'e', 'e', 'e']