美文网首页
2018-06-16正则表达式引入

2018-06-16正则表达式引入

作者: 菩灵 | 来源:发表于2018-06-18 18:06 被阅读8次
  • 正则表达式是独立于python的,是所有语言中都会有的。Regular Expression用来描述某种规则的表达式
  • re模块的使用
    最常使用match(匹配)
    校验:用规则去对比
    result = re.match(正则表达式, 要匹配的字符串)
    如果符合规则,返回(Match Object);如果不符合,返回None,而不是空字符串(因为空字符串也是某种可校验的规则)
    group方法,查看匹配出来的字符串内容。
    1个小规则:
Python 3.5.4 (v3.5.4:3f56838, Aug  8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32
import re
pattern = "itcast"
s = "itcastitem"
result = re.match(pattern, s)
result
<_sre.SRE_Match object; span=(0, 6), match='itcast'>
dir(result)
['__class__', '__copy__', '__deepcopy__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'end', 'endpos', 'expand', 'group', 'groupdict', 'groups', 'lastgroup', 'lastindex', 'pos', 're', 'regs', 'span', 'start', 'string']
result.group()
'itcast'

以上还不具备任何通用性,完全可以使用“itcastitems”.startwith(itcast)。
通用规则:


正则表达式通用规则
  1. “.”可以匹配任何一个字符,用以判断是否有指定数量的字符,由于match方法的特殊性,“...”可以匹配"abcd",但只能匹配出相应数量:“abc”
  2. \d,匹配数字,对应位置必须是一个数字
  3. \D,匹配非数字
  4. \s,匹配空白,空白不止是空格,包括 \t \n \r
  5. \w,匹配单词:a-z,A-Z,0-9,_
  6. [],匹配其中列举的字符,都是可以出现的,中间不需要逗号或者空格空开,如果有“^”则取反;可以用中斜线代表范围比如[a-z5-9]
    \d == [0-9]
    \D == [^0-9]
    \w == [a-zA-Z0-9_]
    \W == [^a-zA-Z0-9_]
    表示数量:
  7. ”表示可以0个或者任意多个前一个字符(有或者没有都行),tip:[\d]表示可以有多个数字也可以没有数字,相当于[\d\d\d\d\d...]
  8. "+"至少出现一次,1次或者无限次,和星号区别是:+号必须出现一次数字,星号可以不出现数字。
  9. “?”要么有一次,要么没有;能匹配出一次
  10. {m}表示前面一个字符必须出现m次,多一次少一次都不行;加一个“,”表示大于等于m次,相当于左闭右的区间。{m,n}出现m到n次。{0,}>= 0,表示*,{1,}>= 1,表示+,{0,1}<= 1,表示?

注意:result = re.match("\d*","a"),返回的是"",为什么不是None?——不符合规则的时候返回None,现在符合规则返回的是"a"前面的""(空字符串)(“a”可以看作是"""a")

  • 加上“r”代表的是原始字符串,不被转义,r是raw的缩写,也就是说,在我们输入的时候是什么样的,输出打印的时候就是什么样的。r"\nabc" == "\\nabc",一般情况下无论是否考虑到需要转义的情况,都要加上“r”。

相关文章

  • 2018-06-16正则表达式引入

    正则表达式是独立于python的,是所有语言中都会有的。Regular Expression用来描述某种规则的表达...

  • JavaScript正则技术

    一、JavaScript正则引入 ①-正则引入 今天我们学习的技术是正则表达式,在说正则表达式之前,我们需要知道的...

  • 正则表达式

    正则表达式1.1 match1.2 split 1. 正则表达式 Python通过re模块引入正则表达式的支持。 ...

  • python05-正则表达式(一)

    正则表达式 python无正则表达式,通过别的模块re(regex模块)应用过来import re # 引入re模...

  • python05-正则表达式(二)

    正则表达式(二) re模块(regex) python中没有正则表达式的函数,需要引入内置的re模块 re模块方法...

  • 正则表达式

    为什么引入正则表达式?:正则表达式可查找一类的字符串 正则表达式: 单字符匹配: \d匹配所有的数字字符 \D匹配...

  • 12.Python使用正则表达式匹配"+"前的字符串

    正则表达式就像加减乘除四则运算符一样,可以跨语言使用。编程语言只要涉及字符处理,都会引入功能强大的正则表达式。可以...

  • 正则表达式入门

    简书不维护了,欢迎关注我的知乎:波罗学的个人主页 上篇博文简单体验了正则表达式,文中最后在示例引入正则表达式的元字...

  • 原型

    title: 原型date: 2018-06-16 23:00:00tags: _proto_ , prototy...

  • Python接口测试—正则表达式获取参数

    Python中正则表达式需引入re模块。登陆后获取登陆token,以备后续接口使用该token。代码如下: imp...

网友评论

      本文标题:2018-06-16正则表达式引入

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