美文网首页
Python_正则表达式及JSON

Python_正则表达式及JSON

作者: 西瓜超人励志要变小细腿 | 来源:发表于2018-07-19 15:51 被阅读134次

    一、正则表达式

    正则表达式是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列相匹配。

    快速检索文本、实现一些替换文本的操作:

    1. 检查一串数字是否是电话号码

    2. 检测一个字符串是否符合email

    3. 把一个文本里指定的单词替换未另一个单词

    python的内置函数,如下:

    二、元字符与普通字符

    正则表达式中 '\d'  代表的是数字

    获取字符串a中所有的数字字符

    ‘Python’   普通字符

    ‘\d’   元字符 (其中的一种)

    \D:匹配字符串中所有的非数字字符

    三、字符集

    概括字符节

    \d:0-9的数字,等价于[0-9]

    \D: 非数字,等价于[^0-9]

    \w:匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集。比如 &等匹配不到

    \W:匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。

    \s:匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]

    \S:匹配任何可见字符。等价于[^ \f\n\r\t\v]

    数量词

    贪婪与非贪婪

    贪婪:

    [a-z]{3,6}--->'python','java','php'

    非贪婪:

    [a-z]{3,6}?--->'pyt','hon','jav','php'

    匹配0次1次或者无限多次

    re.findall('python*', a)                   # *表示python字符串最后一个字符n匹配0到无限多次,也就是pytho之后出现0到无限多个n都成立。

    re.findall('python+', a)                  #最后一个字符匹配1到无限多次

    re.findall('python?', a)                  #最后一个字符匹配0次或者1次,

    需要注意的是pythonn也会被匹配,成为'python',因为这部分匹配了1次,是符合条件的。利用这个特性,可以用来去重

    和之前的非贪婪[a-z]{3,6}?相比,?用在一个范围{3,6}之前,而这里是用在一个确定的字符串前

    边界匹配符

    ^ 加在字符串前面表示在字符转最开始匹配

    $ 加在字符串后面表示在字符串末尾开始匹配

    ^开始边界

    $结束边界

    [0-9] 中的[-]代表的范围

    {,}区间

    因为qq有9位数,超过8位数,所以不能完整匹配,得不到

    [abc]: a或b或c

    (abc):且关系 要求abc连续出现

    匹配模式参数

    匹配模式参数:使用re.findall方法的第三个参数设定匹配模式

    补充概括字符集:  .  匹配除换行符(\n)之外的其他所有字符 

    re.I:忽略大小写

    re.S:匹配所有的字符包含换行符

    re.sub 正则替换

    re.sub(pattern, repl, string, count=0, flags=0)

    pattern指待替换字符串

    repl指将要被替换成的新字符串

    string指字符串所在的变量

    count指字符串被替换的次数,默认值0表示无限次替换,>0的整数表示被替换的有限次数

    flags表示匹配模式参数

    sub查找并替换(简单的字符串替换可以用字符串内置函数,如str.replace)

    注:使用sub进行正则替换时可以传入函数来进行替换

    matched = value.group() 

    *  需求:找出字符串s中的数字,>=6的用9替换,其他的用0替换

    re.match

    re.search

    与findall的区别:

    1、findall返回结果为 list,match和search返回为对象

    .group()  获取对象内容

    .span()   返回对象位置

    2、match和 search只会匹配一次,无论成功与否,一旦匹配到结果就立即返回而不继续匹配

    group() 分组

    建议!

    1、善用正则表达式解决字符串相关的问题

    2、正则表达式和python主要应用场景 —— 爬虫和数据处理分析方面紧密相关

    3、搜索“常用正则表达式”,建议直接使用以提高效率

    四、JSON

    是一种轻量级的数据交换格式

    字符串是JSON的表现形式

    符合JSON格式的字符串叫JSON字符串

    跨语言数据交换

    反序列化

    反序列化

    序列化

    相关文章

      网友评论

          本文标题:Python_正则表达式及JSON

          本文链接:https://www.haomeiwen.com/subject/oxlnyftx.html