正则表达式
正则表达式是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列,相匹配。快速检索文本、
实现一些替换文本的操作。(操作对象:字符串)
列如:
1.检查一串数字是否是电话号码
2.检测一个字符串是否符合email
3.把一个文本里指定的单词替换为另一个单词
import re
re.findall(‘正则表达式’,字符串) (在 “字符串” 中查找到所有的 “正则表达式” ) 返回的结果为 列表
\d (元字符)表示数字 0-9
正则表达式是由普通字符和元字符组成 基本元素
字符集
1 s = (‘abc, acc, adc, aec, afc, ahc’) 2 re.findall('a[cf]'c, s )
匹配是[ ]中 c或f 的结果 取反操作 [^cf]匹配结果 不是c或者f的字符串
概括字符集:元字符
\w 单词字符 \W
\s 空白字符 \S
. 匹配除换行符\n之外的其他所有字符
数量词
1 s = 'python 111java678php' 2 re.findall('[a-z]{3,6}' , s)
{3,6}用法是返回3个字符到6个字符的单词
贪婪 与 非贪婪
Python默认像贪婪方式匹配
非贪婪模式匹配:re.findall('[a-z]{3,6}?' , s)
* 匹配0次或者无限多次
+ 匹配1次或者无限多次
? 匹配0次或者1次 去重操作
1 s = 'pytho0python1pythonn2' 2 re.findall('python?',s)
边界匹配
判断一个qq是否为八位
1 qq = 123456789 2 re.findall('^\d{4,8}$',qq)
^从字符开始匹配 $从字符末尾开始匹配
组
1 a = 'pythonpythonpythonpython' 2 re.findall('(python){3}' , a)
连续三个python
( )是一个组的关系 其中的元素是 且的关系
findall的第三个参数
language = PythonC#JavaPhp
re.findall('c#', labguage , re.I | re.S) re.I 忽略大小写 re.S匹配\n | 表示且关系
re.sub (pattern, rep1, string, count=0, flags=0)替换函数
将string中的pattern换成rep1
count的意思匹配成功后你能替换的最大次数
内置函数 replace (old ,new )简单替换
re.sub函数的第二个参数可以替换为 一个 函数 ;替换过程是匹配的结果作为参数传递给函数 , 函数的执行结果作为替换结果返回
1 import re 2 3 language = ' PythonC#JavaC#PhpC#' 4 5 def convert(value): 6 7 matched = value.group() 8 9 return '!!' + matched + '!!' 10 11 r = re.sub('C#', convert, language) 12 13 print(r) 14 15 Resut: Python!!C#!!Java!!C#!!Php!!C#!!
match 与 search 的区别
返回值: match 从字符串的首字母开始匹配 没有找到相应的匹配结果 则返回None
search搜索整个字符串 遇到匹配值 则返回
match 、search遇到匹配值就返回 结束当前匹配
findall 返回所有的匹配值
span 返回匹配值在字符串中的位置 group 返回匹配值的值
Group
1 import re 2 3 s = ‘life is short , i use python’ 4 5 r = re.search ('life(.*)python',s) / r = re.findall('life(.*)python', s) 6 7 print(r.group(1)) / r.groups() / print(r) 8 9 Result: is short,i use
JSON / JavaScript Object Notation / JavaScript 对象标记
本质:是一种轻量级的数据交换格式
表现形式(载体):字符串
JSON字符串:符合JSON格式的字符串
优势:易于阅读 易于解析 网络传输效率高 跨语言交换数据
反序列化:把JSON的字符串转化成python的某一种数据类型
json.loads()
JSON与Python数据类型转换
| JSON | Python |
| object | dict |
| array | list |
| string | str |
| number | int |
| number | float |
| true | True |
| false | False |
| null | None |
序列化:Python数据类型转换JSON数据类型的过程 json.dumps()
浙公网安备 33010602011771号