正则表达式

简单一点为健康,简单写一写

 啥是正则表达式。简单通俗来讲判断目标字符串是否符合特定的要求
比如判断是否是手机号邮箱网址这些简单的例子  
      

以下内容符号皆为英符,为更明显观看部分符号为高亮加粗中文符号,请注意

import re      #内置正则表达式的模块

\d     dight
\d 表示任意一位数字
\d\d 表示任意两位数字
\d\d\d 表示任意三位数字
....一次类推


\w     word
\w   表示任意一位字母
\w\w  表示任意两位字母
\w\w\w  表示任意三位字母
...依旧以此类推


\s   space
\s  表示空格


.     英文符号点,表示任意单个字符

a.    a点儿表示a值后边可以是任意的单个字符的值



*     星号表示*前边字符内容出现0次到多次

+     加号表示+前边字符内容出现一次到多次

?    问号表示问号前边字符内容出现0到1次

假设 a?  就是指的是 a可以出现0次或者1次,显示的值要么空白没有,要么一次单个a
假设a,? 就是指的是a前边的, (a前边的逗号),可以没有,也可以出现一次,逗号指的是一个变量字符,可以是任意值



^     表示以 。。。 开头
$     表示以。。。。结尾     (可能和startswith,endswith一样的功能)


{n}   表示重复的次数       示例 \d\d\d  = \d{3}

{n,}    表示最少重复n次

{,m}    表示最多重复的次数

{n,m}   表示最少重复n次,最多重复m次

 

 

以下放一些实例性的内容,干柴烈火的匹配下,记住了还要再理解下

# pattern  模式
# compile  编译
# match    对比

# \d表示任意的一位数字
# \w 表示任意的一个字母
# +表示内容出现一次到多次

pattern = re.compile("(\d+)(\w+)")    #每一个括号就是一个group(组)
content = "123helloworld"              #获取一串的数字字母
result=re.match(pattern,content)

if result:
    print(result)    # 返回匹配的对象<_sre.SRE_Match object; span=(0, 13), match='123helloworld'>
    print(result.group(0))   #返回符合要求的全部内容 123helloworld
    print(result.group(1))   #回去第一个group组也就是第一个括号执行结果全部数字  123
    print(result.group(2))   #返回第二个括号执行内容,\w+ 即全部符合的字母  helloworld
                             #不可能返回第三个括号了,只有两个括号,再执行就错了


# 两个无条件以字符对比的实例
pattern=re.compile("my")
result=pattern.match("myself")
print(result)                          #返回匹配对象输出结果是 <_sre.SRE_Match object; span=(0, 2), match='my'>

pattern=re.compile("my")
result=re.match(pattern,"myself")      #match匹配的是内容开始的部分,等同startswith
print(result.group(0))                 #返回符合要求的全部内容  结果 my

# 通俗的讲 pattern=re.compile(a)
#          #b的值可以在额外此定义也可以直接在下述b以字符串的形式表现
#          result=re.match(pattern,b)
#          print(result.group(0))        #输出结果   my
#          print(result)       #直接输出结果的话就是<_sre.SRE_Match object; span=(0, 2), match='my'>

result=re.match(pattern,"myself")
print(result)

pattern=re.compile("lalala")
result=re.match(pattern,"lalalaha")
print(result)                          #.group(0)就会直接输出对比的结果lalala


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值