python-re

Posted 肉松蛋卷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-re相关的知识,希望对你有一定的参考价值。

 

 

1. 基本使用:

 
输出
#re
#pattern = re.compile()  #生成pattern对象
#pattern.match
#pattern.search
#pattern.find
str1 = "itest python"
pa = re.compile(r"itest")
#加r代表是原字符串,不加r容易将\\n等进行转义。
print (type(pa))
print (help(pa))
print(pa.match(str1))
print(pa.match(str1).group())
print (pa.match(str1).span())
#获取原字符串
print (pa.match(str1).string)
#获取实例
print (pa.match(str1).re)
 
 
 
#忽略大小写
pa = re.compile(r"itest",re.I)
ma = pa.match("Itest python")
print ("ma:", ma.group())
ma1 = pa.match("ITEST python")
print("mal:", ma1.group())
ma2 = pa.match("itest python")
print ("ma2:", ma2.group())
 
 
 
 
#groups
pa = re.compile(r"(itest)",re.I)
ma_group = pa.match("Itest python").group()
print ("ma_group:", ma_group)
ma_groups = pa.match("Itest python").groups()
print ("ma_groups:", ma_groups)
 
<class \'re.Pattern\'>
None
<re.Match object; span=(0, 5), match=\'itest\'>
itest
(0, 5)
itest python
re.compile(\'itest\')
 
 
 
 
 
ma: Itest
mal: ITEST
ma2: itest
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ma_group: Itest
ma_groups: (\'Itest\',)

 

2. 基本语法

              

     

  输出

ma = re.match(r"{..}", "{ad}d")
print ("ma:",ma.group())

 

print (re.match(r"{[abc]}", "{a}").group())

print (re.match(r"{[a-z]}", "{d}").group())
print (re.match(r"{[a-zA-Z]}", "{A}").group())
print (re.match(r"{[a-zA-Z0-9]}", "{8}").group())
 
 
 
print (re.match(r"{[\\w]}", "{8}").group())
 
 
print (re.match(r"{[\\w]}", "{}").group())
 
 
 
print (re.match(r"{[\\W]}", "{ }").group())
 
 
 
 
print (re.match(r"\\[[\\w]\\]",\'[a]\').group())
 
 
 
print (re.match(r"{[abc]+}", "{ab}").group())

ma: {ad}

 

{a}
{d}
{A}
{8}

 

 

 

{8}

 

\'NoneType\' object has no attribute \'group\'

 

{ }

 

 

[a]

 

 

{ab}

     

        

 

  输出

print (re.match(r\'[A-Z][a-z]*\', \'Aadddd dd\').group())

 

 

 

 

print (re.match(r"[1-9]?[0-9]",\'09\').group())
print (re.search(r"[1-9]?[0-9]",\'09\').group())

print (re.match(r"[a-zA-Z0-9]{6,10}@163.com",\'adc123@163.com\').group())
print (re.match(r"[a-zA-Z0-9]{6,10}@163.com",\'adc12345@163.com\').group())
 
 
 
 
print (re.match(r"[0-9][a-z]*",\'1bc\').group())
print (re.match(r"[0-9][a-z]*?",\'1bc\').group())
print (re.match(r"[0-9][a-z]+?",\'1bc\').group())
print (re.match(r"[0-9][a-z]??",\'1bc\').group())

Aadddd

 

 

0
0
adc123@163.com
adc12345@163.com

 

 

 

 

1bc
1
1b
1

 

        

          print (re.match(r"^[a-zA-Z0-9_]*$", "jadsjkjs2222((").group())       指定字符串里面只能有字符,数字和下划线

       

          

          

  输出

 print (re.match(r"^[1-9]?\\d$",\'99\').group())
print (re.match(r"^[1-9]?\\d$|100",\'100\').group())

 

 

 

print (re.match(r"[\\w]{6,10}@(163|126).com",\'adc123@163.com\').group())
print (re.match(r"[\\w]{6,10}@(163|126).com",\'adc123@126.com\').group())
print (re.match(r"[\\w]{6,10}@(163|126|qq).com",\'adc123@qq.com\').group())
 
 
 
 
 
 
 

 99
100

 

 

 

adc123@163.com
adc123@126.com
adc123@qq.com

     (?:\\w+\\.)* 以句点结尾的字符串,如:gooogle. , 但是这些匹配不会保存下来供后续的使用和数据检索
(?#comment) 此处不做匹配, 只是作为注释用

(?=.com) 如果一个字符串后面跟着“.com”才做匹配

(?!.com) 如果一个字符串后面不是跟着“.com”才做匹配
(?<=800-) 如果字符串之前为800-才做匹配

(?<!192\\.168\\.) 如果一个字符串之前不是 “192.168” 才做匹配操作, 假定用于过滤一组c类ip地址

(?(1)y|x) 如果匹配组 1(\\1)存在,就与y匹配,否则和x匹配

 

以上是关于python-re的主要内容,如果未能解决你的问题,请参考以下文章