• python正则表达式


    #coding:utf-8
    import re #python正则表达式的模块
    text="hi,hiasdf"
    m = re.findall("\bhi",text) #r是raw的意思,表示对字符串不进行转义,若不加r,输出的一直为空,因为将后面的b转义了,要是不写r则写成\b
    print m #输出结果为['hi', 'hi']

    re是python里的正则表达式模块。findall是其中一个方法,用来按照提供的正则表达式,去匹配文本中的所有符合条件的字符串。返回结果是一个包含所有匹配的list。

    “”在正则表达式中表示单词的开头或结尾,空格、标点、换行都算是单词的分割

    []表示满足括号中任一字符。比如“[hi]”,它就不是匹配“hi”了,而是匹配“h”或者“i”。如果把正则表达式改为“[Hh]i”,就可以既匹配“Hi”,又匹配“hi”了。

    数字简化的写法:[0-9],d。类似的还有[a-zA-Z]的用法。

      要表示任意长度的数字,就可以用  [0-9]*  或者   d*

      但要注意的是,*表示的任意长度包括0,也就是没有数字的空字符也会被匹配出来。一个与*类似的符号+,表示的则是1个或更长。

      所以要匹配出所有的连续的数字串,应当用  [0-9]+  或者  d+

      d{11} 匹配11位数字       1d{10}  匹配开头为1的11位数字

    任意字符是用“.”表示,而“*”则不是表示字符,而是表示数量:它表示前面的字符可以重复任意多次(包括0次)

    “S”,它表示的是不是空白符的任意字符

    ”?“ 表示任意一个或零个字符

    比如Hi, I am Shirley Hilton. I am his wife.

    用“I.*e”去匹配,得到['I am Shirley Hilton. I am his wife']       贪婪匹配--匹配尽可能长的

    用“I.*?e”匹配,得到['I am Shirle', 'I am his wife']    懒惰匹配匹配尽可能短的

    从下面一段文本中,匹配出所有s开头,e结尾的单词。

    site sea sue sweet see case sse ssee loses

    答案sS*e 

    注意不是s.*?e

    既然是单词,我们就不要空格,所以需要用"S"而不是"."

  • 相关阅读:
    09.session #
    08.cookie
    07.中间件
    06.类视图
    374. 猜数字大小 力扣 二分 简单却易错
    278. 第一个错误的版本 力扣 二分 简单
    1449. 数位成本和为目标值的最大数字 力扣 动态规划 难 string赋值和比较
    279. 完全平方数 力扣 动态规划 中等
    518. 零钱兑换 II 力扣 动态规划,中等吧
    203. 移除链表元素 力扣
  • 原文地址:https://www.cnblogs.com/creativepower/p/7629911.html
Copyright © 2020-2023  润新知