正则表达式(1):语法

2022-07-07  本文已影响0人  _百草_

1. 简介

正则表达式regular Expression是一种文本模式,包括普通字符和特殊字符(即元字符)
正则表达式使用单个字符串来描述、匹配一系列某个句法规则的字符串

作用:

2. 语法

import re
s = "Abc123df1ac!\r@#$^&\n——_"
# patt = r"[0-9]+"  # 找出数字  # ['123', '1']
# patt = "[abc]"  # 匹配[]中所有字符  ['b', 'c', 'a', 'c']
# patt = '[^abc]'  # 匹配除[]外其他所有字符  ['A', '1', '2', '3', 'd', 'f', '1', '!', '\r', '@', '#', '$', '^', '&', '\n']
# patt = '[A-Z]'  # 匹配大写字母 ['A']
# patt = '.'  # 除\n和\r外的任何单一字符 ['A', 'b', 'c', '1', '2', '3', 'd', 'f', '1', 'a', 'c', '!', '@', '#', '$', '^', '&']
# patt = r"[\s\S]"  # 匹配所有
# patt = r"\w+"  # 匹配字母、数字、下划线  ['Abc123df1ac', '_']
# s = "13789001234"
# patt = r"^1[3-9]\d{9}$"  # 国内手机号码的正则校验

# ----贪婪模式&非贪婪模式
s = "<h1>RUNOOB-菜鸟教程</h1>"
patt = "<.*>"  # 贪婪模式:['<h1>RUNOOB-菜鸟教程</h1>']
patt = "<.*?>"  # 非贪婪模式:['<h1>', '</h1>']

# -----定位符
s = "How are you,Chapter ter?"
patt = r"\bCha*"  # ['Cha'] 匹配单词 Chapter 的开头三个字符
# patt = r"ter\b"  # ['ter', 'ter'] 匹配单词结尾的ter
# res = re.findall(patt, s)
# print(res)

# -----分组
s = "http://www.runoob.com:80/html/html-tutorial.html"
patt = r"(\w+):\/\/([^/:]+):(\d*)?([^# ]*)"
res = re.match(patt, s)
print(res)  # <re.Match object; span=(0, 48), match='http://www.runoob.com:80/html/html-tutorial.html'>
print(res.group(1))  # http 协议
print(res.group(2))  # www.runoob.com 表示域
print(res.group(3))  # 80 表示端口
print(res.group(4))  # /html/html-tutorial.html  表示页信息,或web地址指定路径

参考:https://www.runoob.com/regexp/regexp-tutorial.html

上一篇 下一篇

猜你喜欢

热点阅读