正则表达式学习笔记

正则表达式

语法1


测试代码

import re

# ma = re.match(r'.','1d')和ma = re.match(r'[0-9]','1d')都可以匹配到含有该字符开头的若干个字符
# [.]这种写法是错误的
# 然而一旦外层有'['或者'{'和其他的特殊符号,则只能匹配含有该字符的一个字符,如r'{[abc]}'
ma = re.match(r'.', '1d')
print ma.group()

ma = re.match(r'{.}', '{a}')
print ma.group()

ma = re.match(r'{..}', '{a2}')
print ma.group()

ma = re.match(r'{[abc]}', '{b}')
print ma.group()

ma = re.match(r'{[a-z]}', '{e}')
print ma.group()

ma = re.match(r'{[a-zA-Z]}', '{A}')
print ma.group()

ma = re.match(r'{[a-zA-Z0-9]}', '{6}')
print ma.group()

ma = re.match(r'{[\w]}', '{6}')
print ma.group()
# \W可以匹配空格
ma = re.match(r'{[\W]}', '{ }')
print ma.group()

ma = re.match(r'\[[a]\]', '[a]')
print ma.group()

ma = re.match(r'\d', '123c')
print ma.group()

ma = re.match(r'\D', 'dfs1')
print ma.group()

ma = re.match(r'\s', '  ')
print ma.group()

ma = re.match(r'\S', 'ss')
print ma.group()

ma = re.match(r'[A-Z][a-z]', 'AsD')
print ma.group()

ma = re.match(r'[A-Z][a-z]*', 'AswD')
print ma.group()
# 变量命名规则
# 加+号和*效果一样
# python命名规则正则表达式
ma = re.match(r"a[_a-zA-Z]+[_\w]*", 'aSwDff2')
print ma.group()

ma = re.match(r'[1-9]?[0-9]', '09')
print ma.group()

ma = re.match(r'[a-zA-Z0-9]{5}', 'abcd1')
print ma.group()

ma = re.match(r'[a-zA-Z0-9]{6,10}@163.com', 'cjy12345@163.com')
print ma.group()
# 非贪婪模式,尽可能少匹配,这里指尽可能不匹配(匹配0次)
ma = re.match(r'[0-9][a-z]*?', '1bc')
print ma.group()
# ??和*?功能一样,尽可能少匹配,即匹配0次
ma = re.match(r'[0-9][a-z]??', '1bc')
print ma.group()

ma = re.match(r'[0-9][a-z]+?', '1bc')
print ma.group()

语法2


测试代码

import re

ma = re.match(r'[\w]{4,10}@163.com$','ccjy5130@163.com');
print ma.group()

ma = re.match(r'\Aimooc[\w]*','imoocpython')
print ma.group()

语法3


测试代码
import re

ma = re.match(r'[\w]{4,10}@163.com$','ccjy5130@163.com');
print ma.group()

ma = re.match(r'\Aimooc[\w]*','imoocpython')
print ma.group()

语法4


测试代码

import re

ma = re.match(r'abc|d','abc')
print ma.group()

ma = re.match(r'[1-9]?\d$','99')
print ma.group()
#|表示左右表达式都可以匹配
ma = re.match(r'[1-9]?\d$|100','100')
print ma.group()
#()表示分组
ma = re.match(r'[\w]{4,6}@(163|126).com','cjy51@126.com')
print ma.group()

ma = re.match(r'<[\w]+>','<book>')
print ma.group()
#\num引用之前的匹配的字符串
ma = re.match(r'<([\w]+>)[\w]+</\1','<book>python</book>')
print ma.group()

ma = re.match(r'<(?P<mark>[\w]+>)[\w]+</(?P=mark)','<book>Java</book>')
print ma.group()

posted @ 2021-11-08 02:01  Rest探路者  阅读(45)  评论(0编辑  收藏  举报
levels of contents