正则表达式

import re
str="abcdefggfffiiiikkkk123456789"
print(re.search(r'^ab', str)) #匹配字符串的开头
# <_sre.SRE_Match object; span=(0, 2), match='ab'>
print(re.search(r'def$', str)) #匹配字符串的末尾
# <_sre.SRE_Match object; span=(3, 6), match='def'>

#用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k'
print(re.search(r'[cd]', str))
# <_sre.SRE_Match object; span=(2, 3), match='c'>

# 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。
print(re.search(r'[^cd]', str))
# <_sre.SRE_Match object; span=(0, 1), match='a'>

# 匹配0个或多个的表达式。
print(re.search(r'z*', str))
# <_sre.SRE_Match object; span=(0, 0), match=''>

# 匹配1个或多个的表达式。
print(re.search(r'g', str))
# <_sre.SRE_Match object; span=(6, 7), match='g'>

# 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
print(re.search(r'(liu)?jun', 'jun'))
# <_sre.SRE_Match object; span=(0, 3), match='jun'>


# 精确匹配 n 个前面表达式。
# 例如, o{2} 不能匹配 "Bob" 中的 "o",
# 但是能匹配 "food" 中的两个 o。
print(re.search(r'liuju{2}', 'liujuuu'))
# <_sre.SRE_Match object; span=(0, 6), match='liujuu'>

# 匹配 n 个前面表达式。
# 例如, o{2,} 不能匹配"Bob"中的"o",
# 但能匹配 "foooood"中的所有 o。
print(re.search(r'liuju{2,}', 'liujuuuu'))
# <_sre.SRE_Match object; span=(0, 8), match='liujuuuu'>


# 匹配n到m次由前面的正则表达式定义的片段,贪婪方式
print(re.search(r'liuju{2,4}', 'liujuuuuuu'))
# <_sre.SRE_Match object; span=(0, 8), match='liujuuuu'>

# 匹配a或b
print(re.search(r'Java|java', 'java'))
# <_sre.SRE_Match object; span=(0, 4), match='java'>

#匹配任何字母及数字
print(re.search(r'[a-zA-Z0-9]', 'java'))
# <_sre.SRE_Match object; span=(0, 1), match='j'>

# 匹配一个数字字符。等价于[0 - 9]。
print(re.search(r'\dc', 'java2c'))
# <_sre.SRE_Match object; span=(4, 6), match='2c'>

# 匹配一个非数字字符。等价于[ ^ 0 - 9]。
print(re.search(r'\Dc', 'javafc'))
# <_sre.SRE_Match object; span=(4, 6), match='fc'>

# 匹配任何空白字符,
# 包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
print(re.search(r'\s', 'javafc java'))
# <_sre.SRE_Match object; span=(6, 7), match=' '>

# 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
print(re.search(r'\wc', 'javaf_c java'))
# <_sre.SRE_Match object; span=(5, 7), match='_c'>

# ‘\b’ 匹配单词边界
print(re.search(r'\bam\b', 'i am a boy !'))
# <_sre.SRE_Match object; span=(2, 4), match='am'>


print(re.findall(r'(?:ab)+',"ccabababababababab" ))
# ['abababababababab']


s = 'zvzc zcpython python1234 abcPython' # 字符串

pattern = re.compile('[Pp]ython')
print(pattern.search(s)) # 返回match对象
print(pattern.search(s).group()) # 返回模式匹配的第一个子串
print(pattern.findall(s)) # 返回列表,表中元素是匹配的各子串
# <_sre.SRE_Match object; span=(7, 13), match='python'>
# python
# ['python', 'python', 'Python']

pattern = re.compile('(P|p)ython')
print(pattern.search(s))  # 返回match对象
print(pattern.search(s).group()) # 返回模式匹配的第一个子串
print(pattern.search(s).groups())
# 返回小括号里的内容。就是先匹配整个模式得到子串'python',
# 然后拿得到的子串'python'去匹配小括号里的模式,最后得到'p',并放到元组里
print(pattern.findall(s))
# 返回小括号里的内容。就是先匹配整个模式得到子串'python'和'Python',
# 然后拿得到的子串'python'或'Python'去匹配小括号里的模式,最后得到'p'和'P',并放到列表里
#
# <_sre.SRE_Match object; span=(7, 13), match='python'>
# python
# ('p',)
# ['p', 'p', 'P']

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值