Python之正则表达式与JSON
Python之正则表达式与JSON
1、定义
正则表达式是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列,相匹配。
可以快速检索文本,实现一些替换文本的操作
a = ‘C|C++|C#|Python|Javascript’
print(a.index('Python')> -1)
print('Pythin' in a)
import re
a = ‘C|C++|C#|Python|Javascript’
r = re.findall('Python', a) #返回一个列表
if len(r) > 0:print("字符串中包含Pyython")
import re
a = ‘C0C++4C#6Python1Javascript’
r = re.findall('\d',a) #正则表达式中用“\d”统配数字
print(a)
'Python’普通字符 ‘\d’元字符
import re
a = ‘C0C++4C#6Python1Javascript’
r = re.findall('\D',a) #正则表达式中用“\D”匹配所有的非数字
print(a)
字符集
import re
a = 'abc,acc,adc,aec,afc,ahc'
r = re.findall('a[cf]c',s) #匹配出acf或afc
print(r)
import re
a = 'abc,acc,adc,aec,afc,ahc'
r = re.findall('a[^cf]c',s) #匹配出非acf和非afc
print(r)
import re
a = 'abc,acc,adc,aec,afc,ahc'
r = re.findall('a[c-f]c',s) #匹配出a[c,d,e,f]c
print(r)
概况字符集
import re
a = ‘C0C++4C#6Python1Javascript’
r = re.findall('\d',a) #正则表达式中用“\d”统配数字
print(a)import re
a = ‘C0C++4C#6Python1Javascript’
r = re.findall('[0-9]',a) #正则表达式中用“\d”统配数字等价于[0-9]
print(a)
import re
a = ‘C0C++4C#6Python1Javascript’
r = re.findall('\w',a) #正则表达式中用“\w”匹配所有的数字字母
print(a)
"\w" 单词字符集,可以匹配大小写字母,数字和_ 等价于[A-Za-z0-9_]
“\W” 非单词字符集 &
“\s” 空白字符 包括空格,\t,\n,\r
“\S” 匹配非空白字符
. 匹配除\n以外的所有字符
数量词
import re
a ='python 1111java678php'
r = re.findall('[a-z]{3}',a) #匹配连续的a-z的三个字符
print(r)import re
a ='python 1111java678php'
r = re.findall('[a-z]{3,6}',a) #匹配连续的a-z的3到6个字符
print(r)
贪婪与非贪婪 尽可能匹配最大值
import re
a ='python 1111java678php'
r = re.findall('[a-z]{3}',a) #匹配连续的a-z的三个字符
print(r)结果:
['python','java','php'] 由于贪婪
非贪婪模式,大括号后加?
import re
a ='python 1111java678php'
r = re.findall('[a-z]{3,6}?',a) #非贪婪模式匹配
print(r)结果:
['pyt’,hon','jav','php'] #由于非贪婪只匹配3个字符
* 匹配*前面的字符0次或无数次
+ 匹配*前面的字符1次或无数次
? 匹配*前面的字符0次或1次
边界匹配
import re
a = '100001'
r = re.findall('\d{4,8}',qq) #匹配4到8位数字
print(r)import re
a = '100001'
r = re.findall(^'\d{4,8}$',qq) #边界匹配
print(r)import re
a = '10000000001'
r = re.findall(^'000$',qq) #边界匹配
print(r)
import re
a = 'PythonPythonPythonPythonPythonPython'
r = re.findall('(Python){3}',a)
print(r)
import re
lanuage = 'PythonC#JavaPHP'
r = re.findall(‘c#.{1}’,lanuage,re.I |re.S)
print(r)re.I 忽略大小写 re.S 改变.的功能
re.sub
import re
lanuage = 'PythonC#JavaPHP'
r = re.sub(‘C#’,'GO',lanuage,1)
print(r)
# r = re.sub(‘需要被替换的字符’,‘替换后的字符',lanuage,被替换的次数(1表示1次,0表示无数次))
import re
lanuage = 'PythonC#JavaPHP'
r = lanuage.replace(‘C#’,'GO')
print(r)
import re
lanuage = 'PythonC#JavaPHP'
def convert(value):pass
# 先匹配C#,将c#作为参数传给convert()函数,再将返回值用于替换C#
r = re.sub(‘C#’,convert,lanuage)
print(r)
import re
lanuage = 'PythonC#JavaPHP'
def convert(value):pass
# 先匹配C#,将c#作为参数传给convert()函数,再将返回值(对象)用于替换C#
r = re.sub(‘C#’,convert,lanuage)
print(r)
import re
s = 'ABC3721D86'
def convert(value):matched = value.group()if int(matched) >= 6:return '9'else:return '0'
r = re.sub('\d',convert,s)
print(r)
import re
s = 'ABC3721D86'
r = re.match('\d',s)
#从字符串首字母开始匹配,第一个字符不符合,则返回空
print(r)
r1 = re.search('\d',s)
# 搜索整个字符串,首字母对匹配不影响
print(r1)
# 他们都只匹配一次
group()函数
span()函数
# 获取life和python中间的内容
import re
s = 'life is short,i use python'
r = re.search('life.*python',s)
print(r.gruop())
group(0)默认返回完整匹配结果,要通过组号访问,需要从group(1)开始
import re
s = 'life is short,i use python, i love python'
r = re.search('life(.*)python(.*)python',s)
print(r.gruop(0))
print(r.gruop(1))
print(r.gruop(2))
# print(r.group(0,1,2))
print(r.groups()) #只会返回之间的字符串
JSON
javascript 对象标记
是一种轻量级的数据交换格式
JSON字符串,符合json格式的字符串
优点:易于阅读解析网络传输效率高,跨语言交换数据
json的载体,json字符串
import json
# json_str = "{'name':'qiyue','age':18}" #错误,json字符串规定用“”json_str = '{"name":"qiyue","age":18}' #json object
student = json.loads(json_str)
print(type(student))
print(student)
print(student['name'])
print(student['age'])
import jsonjson_str = '{"name":"qiyue","age":18,"flag":false},{"name":"qiyue","age":18}'
student = json.loads(json_str)
print(type(student))
print(student)
从字符串到语言的数据类型的转换,反序列化序列化
import json
studeht = [{"name":"qiyue","age":18,"flag":false},{"name":"qiyue","age":18}]
json_str = json.dumps(student)
print(json_str)
json python
object dict
array list
string str
json对象 json json字符串
javascript ECMSCRIPT规范和标准的实现
Python之正则表达式与JSON相关推荐
- Python(八) 正则表达式与JSON
一.初识正则表达式 正则表达式 是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列,相匹配 快速检索文本.实现替换文本的操作 json(xml) 轻量级 web 数据交换格式 impor ...
- 【Python之正则表达式与JSON】
- 正则 指定开头结尾_Python核心知识系列:正则表达式与JSON
1 正则表达式必知必会 1.1 简介 正则表达式:是一些用来匹配和处理文本的字符串. 正则表达式的使用场景主要以下两种情况:一是查找特定的信息(搜索),二是查找并编辑特定的信息(替换). 用模式(pa ...
- JSON java 正则_9、正则表达式与JSON
正则表达式:一个特殊的字符序列,可以帮助检测一个字符串是否与我们所设定的字符序列相匹配. 功能:可以实现快速检索文本.替换文本的操作. 检测一串数字是否是电话号码 检测一个字符串是否符合e-mail格 ...
- 正则表达式与JSON
正则表达式与JSON 一.初识正则表达式 # 正则表达式是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列,相匹配 # 快速检索文本.实现一些替换文本的操作 # 1.检查一串数字是否室电 ...
- 10. 正则表达式与JSON
正则表达式 正则表达式是一个特殊的字符序列,是对字符串的逻辑操作,主要是对字符串的一种过滤,用"元字符"与"普通字符"组成一个字符串规则对已知的字符串或文本过滤 ...
- 第十章、正则表达式和JSON
第十章.正则表达式和JSON 文章目录 第十章.正则表达式和JSON 一.正则表达式 二.JSON 一.正则表达式 正则表达式是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列,相匹配, ...
- Python3进阶--正则表达式、json、logging日志配置、数据库操作、枚举、闭包、匿名函数和高阶函数、time、datetime
第一章 变量.常用循环体.代码结构.代码练习 第二章 列表.元组等数据结构.字符串驻留机制及字符串格式化操作 第三章 函数.面向对象.文件操作.深浅拷贝.模块.异常及捕获 第四章 项目打包.类和对象高 ...
- JavaScript 正则表达式 处理json,json对象的遍历和处理
//********* https://www.runoob.com/js/js-regexp.html ****// 正则表达式.exec( ) new RegExp("\\{" ...
最新文章
- elk-nginx输出json格式的日志
- java的源代码文件扩展名_【单选题】Java 的源代码文件具有( )的扩展名 (5.0分)
A. .c B. .class C...
- oracle绑定主键,oracle添加主键的四种方法:
- boost::exception_test::throw_test_exception<T>的测试程序
- HDU 5536 Chip Factory 字典树+贪心
- java桌面应用程序打包为exe
- [GXOI/GZOI2019]旧词——树链剖分+线段树
- pythonflask configlist.py_Python+Flask.0004.FLASK配置管理之三种方式加载外部配置
- Java面试——线程池
- 手机屏大字滚动_LG 滑动伸缩手机专利公布
- (筆記) Continuous Assignment的幾個特色 (SOC) (Verilog)
- ip=request.servervariables(Remote_Addr)获得ip显示::1
- SciPy教程 - 常数constants和特殊函数库special
- [导入][转] Eclipse中的快捷键
- Shell脚本 批量修改目录下若干文件名
- python怎么改错误代码_【新人求助】py大神们求看,一段简单代码出错,不知道如何修改...
- 软件项目与产品的区别与联系_软件产品和软件过程之间的区别和关系
- 图书管理系统c语言ns图,图书管理系统流程图.doc
- cuda安装及百度云链接
- html5语文答题制作,语文万能答题模板