# 判断一个字符串是否在另外一个字符串中
# 方法一
str = 'php|java|python|javascript|html'
print('php' in str) # True
# 方法二
import re
str = 'php|java|python|javascript|html'
result = re.findall('php',str)
print(result) # ['php']
# ----------------------------------------
# 返回一个字符串中所有的数字
import re
str = 'php123java312python123javascript123html'
print(re.findall('\d', str)) # ['1', '2', '3', '3', '1', '2', '1', '2', '3', '1', '2', '3']
# ----------------------------------------
# 匹配指定字符
import re
str = 'abc,afc,adc,arc'
# 匹配是 abc 或者 afc的
print(re.findall('a[bf]c',str)) # ['abc', 'afc']
# 匹配不是 abc 或者 afc的
print(re.findall('a[^bf]c',str)) # ['adc', 'arc']
# ----------------------------------------
# 数量词
import re
str = 'pytho1python2pythonn0'
# * 匹配 0 次或者无限多次
print(re.findall('python*',str)) # ['pytho', 'python', 'pythonn']
# + 匹配 1 次或者无限多次
print(re.findall('python+',str)) # ['python', 'pythonn']
# ? 匹配 0 次或者 1 次
print(re.findall('python?',str)) # ['pytho', 'python', 'python']
# ----------------------------------------
# () 是匹配组的
str = 'PythonPythonPython'
print(re.findall('(Python){3}',str)) # [' ']
str = 'PythonPython'
print(re.findall('(Python){3}',str)) # []
str = 'PythonPythonPythonPython'
print(re.findall('(Python){3}',str)) # ['Python']
# ----------------------------------------
# 忽略大小写
str = 'PythonPHPc++'
print(re.findall('php',str,re.I)) # ['PHP']
# ----------------------------------------
# 匹配所有的字符, 加上 re.S 以后, . 表示匹配所有的字符, 包含了换行符 \n
# 原本 . 是匹配除了换行符 \n 之外其他的所有字符
str = 'PythonPHPc++'
print(re.findall('php',str,re.S))
# ----------------------------------------
# 字符串替换
str = 'c++PythonPHPc++'
print(re.sub("c\+\+", 'Go', str)) # GoPythonPHPGo
print(re.sub("c\+\+", 'Go', str, 1)) # GoPythonPHPc++
# 其中 re.sub() 中的第二个参数还可以接收一个函数, 如下
str = 'c++PythonPHPc++'
def deal_str(value):
match = value.group()
return '!!' + match + '!!'
print(re.sub("c\+\+", deal_str, str)) # !!c++!!PythonPHP!!c++!!
python 中的正则表达式学习笔记
Python
401
0
0
2022-04-11
标签
Python正则表达式