学习笔记-正则表达式

前端之家收集整理的这篇文章主要介绍了学习笔记-正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

search

# search() 方法用于在字符串中搜索正则表达式第一次出现的位置。@H_502_9@>>> import re@H_502_9@>>> re.search(r'FishC','I love FishC.com!')@H_502_9@<_sre.SRE_Match object; span=(7,12),match='FishC'>@H_502_9@# . 用于表示除了换行的任何一个字符(此列返回了第一个字符I)@H_502_9@r'.',68);">0,68);">1),17);">'I'# 要匹配.本身,则加一个元字符\@H_502_9@r'\.',68);">12,68);">13),17);">'.'>

数字匹配

@H_502_9@# \d 用于匹配任意一个数字,等效于 [0-9]@H_502_9@# 匹配1个数字@H_502_9@r'\d',17);">'I love 123 FishC.com')@H_502_9@8),17);">'1'# 匹配3个数字@H_502_9@r'\d\d\d',68);">10),17);">'123'# 匹配2个数字@H_502_9@r'\d{2}',68);">9),17);">'12'范围匹配 
# 使用[]来匹配一定范围@H_502_9@# 默认对大小写敏感@H_502_9@# [aeIoU]用于匹配 aeIoU中任意一个字符@H_502_9@r'[aeIoU]',68);">3,68);">4),17);">'o'# [a-g] 用于匹配 a至g之时的任意一个字符.[0-5]用于匹配0-5之间的任意一个数字@H_502_9@r'[a-g]',68);">5,68);">6),17);">'e'次数匹配 
# 使用{}匹配次数@H_502_9@>>> a = 'abbbccc1234'@H_502_9@# 匹配b三次@H_502_9@r'ab{3}',a)@H_502_9@'abbb'# 匹配b4次(无结果没返回值)@H_502_9@r'ab{4}',a)@H_502_9@# 匹配2-4次@H_502_9@r'ab{2,4}',0);"># 最少匹配2次@H_502_9@# 最多匹配4次@H_502_9@r'ab{,26);">>@H_502_9@>>> 

小练习

匹配255之间的数

# 思考:re.search(r'[0-255]','188')会匹配出什么?@H_502_9@r'[0-255]',17);">'188')@H_502_9@# 解析:[0-255]表示匹配0-2与5与5,则匹配0,1,2,5中任意一个字符@H_502_9@@H_502_9@# 思考: re.search('[0-2][0-5][0-5]',17);">'[0-2][0-5][0-5]',17);">'188')@H_502_9@# 解析:[0-2][0-5][0-5] 表示一个 第一位是0-2,第二位是0-5第三位是0-5的一个三位数@H_502_9@@H_502_9@# 表达式:[01]\d\d|2[0-4]\d|25[0-5]@H_502_9@r'[01]\d\d|2[0-4]\d|25[0-5]',68);">3),17);">'188'# 存在问题:无法匹配18,5等低于3位数,仅能匹配018,005@H_502_9@@H_502_9@# 正确的表达式: [01]{,1}\d{,1}\d|2[0-4]\d|25[0-5]

IP地址匹配

# 方法1:@H_502_9@# 表达式 \d\d\d\.\d\d\d\.\d\d\d\.\d\d\d@H_502_9@# 存在问题:仅能匹配三位数的IP,且不能匹配出正确范围@H_502_9@# 例:正确匹配@H_502_9@'\d\d\d\.\d\d\d\.\d\d\d\.\d\d\d',17);">'sdf192.168.123.123sdafkj')@H_502_9@18),17);">'192.168.123.123'# 例:错误匹配@H_502_9@# 范围超出@H_502_9@'sdf555.666.777.888sdafkj')@H_502_9@'555.666.777.888'# 无匹配项@H_502_9@'sdf192.168.12.123sdafkj')@H_502_9@@H_502_9@# 方法2:@H_502_9@# 表达式 (([01]\d\d|2[0-4]\d|25[0-5])\.){3}[01]\d\d|2[0-4]\d|25[0-5]@H_502_9@# 存在问题:能正确匹配范围,但仅能匹配出每字段为3位的IP地址。例可以匹配192.168.200.100但不能匹配192.168.1.1@H_502_9@r'(([01]\d\d|2[0-4]\d|25[0-5])\.){3}[01]\d\d|2[0-4]\d|25[0-5]',17);">'192.168.200.100')@H_502_9@15),17);">'192.168.200.100'>@H_502_9@@H_502_9@# 方法3@H_502_9@# 表达式: (([01]{,1}\d|2[0-4]\d|25[0-5])\.){3}[01]{,1}\d|2[0-4]\d|25[0-5]@H_502_9@r'(([01]{,1}\d|2[0-4]\d|25[0-5]',17);">'192.168.1.12')@H_502_9@'192.168.1.12'>

猜你在找的正则表达式相关文章