正则表达式的学习过程

 #优先使用内置函数
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?