正则表达式的学习过程
#优先使用内置函数
a = 'C|C++|Java|C#|Python|Javascript'
print(a.index('Python')>-1)
print('Python' in a)
#利用内置函数判断字符串'python'是否在a中正则表达式是一个特殊的字符序列,帮助检测一个字符串是否与所设定字符序列相匹配。.可快速检索文本、实现一些替换文本的操作。 例如: 1、检查一串数字是否是电话号码. 2、检测一个字符串是否符合email 3、把一个文本里指定的单词替换为另外一个单词。
用正则表达式
import re # 引入re 模块
a = 'C|C++|Java|C#|Python|Javascript'
r = re.findall('Python',a) #findall 方法
print(r)
if len(r) > 0:
print('字符串中包含Python')
else:
print('No')正则表达式不仅可以用来检测字符串,也可以用来替换字符串。
import re
a = 'C0C++7Java12C#9Python67\nJavascript8'
#用r来提取a中的数字
r = re.findall('\d',a) #\d 来表示数字(0-9)
print(r)
#用s来提取a中的非数字
s = re.findall('\D',a) #\D 来表示非数字的字符
print(s)上面'python'是普通字符,'\d','\D'属于元字符 正则表达式就是由普通字符和元字符等组合在一起的。
字符集 虽然可以提取字符串,但提取出来的都是一个一个字符。只能匹配单一的字符(单个字母,数字)
概括字符集 \d即 [0-9] \D所有的非数字 \w单词字符 '[A-Za-z0-9]和下划线_ \W 非单词字符, \s 空白字符(空格/制表符/换行符) \S 非空白字符 . 匹配除换行符之外其他所有的字符
数量词,贪婪与非贪婪
问号,星号,加号的使用方法
1、 对前的字符匹配0次或无限多次 2、+ 对+前的字符匹配1次或无限多次 3、 ? 对?前的字符匹配0次或1次 与贪婪中的?是不同的
边界匹配
组
匹配模式 (函数中的第三个参数) re.I 忽略匹配中的大小写 re.S 匹配所有的字符,包括换行符
re.sub简单用法
re.sub高阶用法
把函数作为传递参数
match和search match和search方法类似, 但有些许区别, 顾明思议 match是匹配的意思, 从第一个字符开始匹配, 匹配不到就返回 search是搜索的意思, 如果第一个字符匹配不到, 会继续往后匹配, 直到字符结束
group()的用法
Last updated
Was this helpful?