正则表达式(模式匹配)

1.简介
正则表达式是在处理字符串是必须掌握的。
判断字符串是否符合某一模式


2.特殊字符
1)^$*?+{2}{2,}{2,5}|
2)[][^][a-z]
3)\s\S\w\W
4)[\u4E00-\u9FA5]()\d


【代码演示】
import re

line="heelllllleeooe123"
line1="13250936269"
line2="你好世界"
regex_str0 = "^h.*" #'^'以h开头,'.'后接任意字符,'*'任意多次变换
regex_str1 = ".*3$"#以3结尾的字符串
regex_str = ".*?(e.*?e).*"#‘?’从左边开始匹配匹配到第一个e,输出第一个e到第二个e的字符串
regex_str2 = ".*(e.*e).*"#从右边开始匹配'()'提取括号中的内容
regex_str3 = ".*(e.+e).*"#从右边开始匹配
regex_str4 = ".*(e.{1}e).*"#两个e之间出现字符数为1个的字符
regex_str5 = ".*(e.{1,2}e).*"#两个e之间出现字符数大于1次小于2次的字符
regex_str6 = "([hijk]eelll)"#[]内的字符满足任一条件就成立
regex_str7 = "(1[0-9]{10})"#在1之后的字符有满足0-9的任意10位数字
regex_str8 = "(1[^1]{10})"#在1之后的字符有满足不等于1的任意10位数字
regex_str9 = "([\u4E00-\u9FA5]+)"#[\u4E00-\u9FA5]满足任意汉字‘+’一个以上的字符都可以(中文,连续)
regex_str10 = ".*?(\d+)"#\d提取数字
match_obj = re.match(regex_str,line)#返回结果
match_obj1 = re.match(regex_str2,line)
match_obj2 = re.match(regex_str3,line)
match_obj3 = re.match(regex_str4,line)
match_obj4 = re.match(regex_str5,line)
match_obj5 = re.match(regex_str6,line)
match_obj6 = re.match(regex_str7,line1)
match_obj7 = re.match(regex_str8,line1)
match_obj8 = re.match(regex_str9,line2)
match_obj9 = re.match(regex_str10,line)
if re.match(regex_str0,line):#re判断是否匹配(match_obj是否有结果)
    print("以h开头")
if re.match(regex_str1,line):#re判断是否匹配
    print("以3结尾")
if match_obj:#非贪婪匹配,正向匹配
    print(match_obj.group(1))
if match_obj1:#贪婪匹配,反向匹配
    print(match_obj1.group(1))
if match_obj2:
    print(match_obj2.group(1))
if match_obj3:
    print(match_obj3.group(1))
if match_obj4:
    print(match_obj4.group(1))
if match_obj5:
    print(match_obj5.group(1))
if match_obj6:
    print(match_obj6.group(1))
if match_obj7:
    print(match_obj7.group(1))
if match_obj8:
    print(match_obj8.group(1))
if match_obj9:
    print(match_obj9.group(1))


【输出结果】
以h开头
以3结尾
ee
eooe
eooe
eooe
heelll
13250936269
13250936269
你好世界
123


2.python示例

python出生年月提取示例
【代码示例】
import re

line = "张伟出生于1996年2月1日"
line = "张伟出生于1996-2-1"
line = "张伟出生于1996-02-01"
line = "张伟出生于1996-02"
line = "张伟出生于1996年2月"

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))

常用正则表达式

(来源于https://blog.csdn.net/Angelahhj



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值