专栏首页221-Bpython正则表达式的部分特殊符号

python正则表达式的部分特殊符号

\w - 匹配字母或数字或下划线或汉字(3.x版本可以匹配汉字,但2.x版本不可以) \s - 匹配任意的空白符 \b - 在正则表达式中表示单词的开头或结尾, 空格、标点、换行都算是单词的分割. 而“\b”自身又不会匹配任何字符, 它代表的只是一个位置. \d - 表示一个数字 ^ - 匹配字符串的开始 $ - 匹配字符串的结束 [ ] - 使用方括号,在正则表达式中, []表示满足括号中任一字符. 比如“[hi]”, 它就不是匹配“hi”了, 而是匹配“h”或者“i”.

\S其实就是\s的反义,任意不是空白符的字符。同理,还有:

\W - 匹配任意不是字母,数字,下划线,汉字的字符 \D - 匹配任意非数字的字符 \B - 匹配不是单词开头或结束的位置

[a]的反义是[^a],表示除a以外的任意字符。[^abcd]就是除abcd以外的任意字符。

*+{}用来表示字符的重复。其他重复的方式还有:

* - 表示任意数量连续字符,这种被称为通配符。但是在正则表达式中,’*’只表示数量,不表示字符. + - 与’*’类似,表示1或更多的数量 ? - 表示任意一个字符, 重复零次或一次 {} - 代替’+’,表示特定数量,限定长度 {n,} - 重复n次或更多次 {n,m} - 重复n到m次

正则表达式不只是用来从一大段文字中抓取信息,很多时候也被用来判断输入的文本是否符合规范,或进行分类。来点例子看看: ^\w{4,12}$ 这个表示一段4到12位的字符,包括字母或数字或下划线或汉字,可以用来作为用户注册时检测用户名的规则。(但汉字在python2.x里面可能会有问题)

\d{15,18} 表示15到18位的数字,可以用来检测身份证号码

^1\d*x? 以1开头的一串数字,数字结尾有字母x,也可以没有。有的话就带上x。

另外再说一下之前提到的转义字符\。如果我们确实要匹配.或者*字符本身,而不是要它们所代表的元字符,那就需要用\.\*\本身也需要用\\。 比如"\d+\.\d+"可以匹配出123.456这样的结果。

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

site sea sue sweet see case sse ssee loses

r,是raw的意思,它表示对字符串不进行转义。为什么要加这个?你可以试试print "\bhi"r"\bhi"的区别。

>>> print “\bhi” hi >>> print r”\bhi” \bhi

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 不懂汇编,如何逆向(iOS)

    其实这个是非必要项, 自己手动砸壳需要已越狱的手机. 想手动砸壳可以参考这篇文章.

    Locker
  • mySQL.apache2.tomcat自动启动设置方法

    mySQLhe apache2这两个服务可以直接用sysv-rc-donf 先安装:

    Locker
  • markdown-TOC

    今天写了一篇比较长的文章, 想用目录使结构清晰一点,但是却发现markdown对TOC的支持实在是……

    Locker
  • 介绍两个自动生成正则表达式的网址

    正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串,将匹配的子串替换,或者从某个串中取出符合某个条...

    stormwen
  • (27)正则表达式

    ①正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。

    生信real
  • 正则表达式与优化

    用 NFA 自动机实现的比较复杂的正则表达式,在匹配过程中经常会引起回溯问题。大量的回溯会长时间地占用 CPU,从而带来系统性能开销。

    汐楓
  • 非 996 删库跑路,发生在 update 上的悲剧

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xmt1139057136/article/detai...

    业余草
  • Apache Calcite 论文学习笔记

    特别声明:本文来源于掘金,“预留”发表的[Apache Calcite 论文学习笔记](https://juejin.im/post/5d2ed6a96fb9a...

    叁金
  • 正则表达式

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

    DannyHoo
  • 设计模式-装饰者模式

    说明下: Component,给出一个抽象接口,规范实现类的一些方法; ConcreteComponent:具体的一个组件,实现了接口方法; Decorato...

    breezedancer

扫码关注云+社区

领取腾讯云代金券