当前所在位置: 首页 > 老域名交易信息

web前端正则表达式总结-转自芯学苑(转载)Python正则表达式操作指南(1)(转载)

2021-10-11 本站作者 【 字体:


  本文西安芯学苑主要向大家介绍正则表达式。正则表达式,又被常称为火星文。正则表达式用于字符串处理、表单验证等场合,实用高效。

  芯学苑小编收集到的常用的正则表达式:

  匹配中文字符的正则表达式: [\u4e00-\u9fa5]

  匹配双字节字符(包括汉字在内):[^\x00-\xff]

  匹配HTML标记的正则表达式:<(\S*?) [^>]*>.*?|<.*? />

  匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)* \.\w+([-.]\w+)*

  匹配空白行的正则表达式:\n\s*\r

  匹配首尾空白字符的正则表达式:^\s*|\s*$

  匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*

  匹配ip地址:\d+ \.\d+\.\d+\.\d+

  匹配中国邮政编码:[1-9]\d{5}(?!\d)

  匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a- zA-Z][a-zA-Z0-9_]{4,15}$

  匹配国内电话号码:\d{3}-\d{8}| \d{4}-\d{7}

  匹配腾讯QQ号:[1-9] [0-9]{4,}

  匹配身份证:\d{15}|\d{18}

  匹配特定数字:

  ^[1-9]\d*$    //匹配正整数

  ^-?[1-9]\d*$   //匹配整数

  ^-[1-9]\d*$   //匹配负整数

  ^-[1-9]\d*|0$    //匹配非正整数(负整数 + 0)

  ^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)

  ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数

  ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数

  ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$   //匹配负浮点数

  ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$   //匹配非正浮点数(负浮点数 + 0)

  ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$    //匹配非负浮点数(正浮点数 + 0)

  匹配特定字符串:

  ^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串

  ^[A-Za-z]+$   //匹配由26个英文字母组成的字符串

  ^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串

  ^[a-z]+$  //匹配由26个英文字母的小写组成的字符串

  ^\w+$  // 匹配由数字、26个英文字母或者下划线组成的字符串
摘要


  本文是通过Python的 re 模块来使用正则表达式的一个入门教程,和库参考手册的对应章节相比,更为浅显易懂、循序渐进。


  本文可以从 http://www.amk.ca/python/howto 捕获



  目录




  目录
  1 简介
  2 简单模式
  2.1 字符匹配
  2.2 重复
  3 使用正则表达式
  3.1 编译正则表达式
  3.2 反斜杠的麻烦
  3.3 执行匹配
  3.4 模块级函数
  3.5 编译标志
  4 更多模式功能
  4.1 更多的元字符
  4.2 分组
  4.3 无捕获组和命名组
  4.4 前向界定符
  5 修改字符串
  5.1 将字符串分片
  5.2 搜索和替换
  6 常见问题
  6.1 使用字符串方式
  6.2 match() vs search()
web前端正则表达式总结-转自芯学苑(转载)Python正则表达式操作指南(1)(转载)(图1)  6.3 贪婪 vs 不贪婪


  简介
  Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。Python 1.5之前版本则是通过 regex 模块提供 Emecs 风格的模式。Emacs 风格模式可读性稍差些,而且功能也不强,因此编写新代码时尽量不要再使用 regex 模块,当然偶尔你还是可能在老代码里发现其踪影。


  就其本质而言,正则表达式(或 RE)是一种小型的、高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现。使用这个小型语言,你可以为想要匹配的相应字符串集指定规则;该字符串集可能包含英文语句、e-mail地址、TeX命令或任何你想搞定的东西。然後你可以问诸如“这个字符串匹配该模式吗?”或“在这个字符串中是否有部分匹配该模式呢?”。你也可以使用 RE 以各种方式来修改或分割字符串。


  正则表达式模式被编译成一系列的字节码,然後由用 C 编写的匹配引擎执行。在高级用法中,也许还要仔细留意引擎是如何执行给定 RE ,如何以特定方式编写 RE 以令生产的字节码运行速度更快。本文并不涉及优化,因为那要求你已充分掌握了匹配引擎的内部机制。


  正则表达式语言相对小型和受限(功能有限),因此并非所有字符串处理都能用正则表达式完成。当然也有些任务可以用正则表达式完成,不过最终表达式会变得异常复杂。碰到这些情形时,编写 Python 代码进行处理可能反而更好;尽管 Python 代码比一个精巧的正则表达式要慢些,但它更易理解。

  简单模式
  我们将从最简单的正则表达式学习开始。由于正则表达式常用于字符串操作,那我们就从最常见的任务:字符匹配 下手。


  有关正则表达式底层的计算机科学上的详细解释(确定性和非确定性有限自动机),你可以查阅编写编译器相关的任何教科书。

  字符匹配
  大多数字母和字符一般都会和自身匹配。例如,正则表达式 test 会和字符串“test”完全匹配。(你也可以使用大小写不敏感模式,它还能让这个 RE 匹配“Test”或“TEST”;稍後会有更多解释。)


  这个规则当然会有例外;有些字符比较特殊,它们和自身并不匹配,而是会表明应和一些特殊的东西匹配,或者它们会影响到 RE 其它部分的重复次数。本文很大篇幅专门讨论了各种元字符及其作用。


  这里有一个元字符的完整列表;其含义会在本指南馀下部分进行讨论。

  . ^ $ * + ? { [ ] \ | ( )

  我们首先考察的元字符是 `" 和 "`。它们常用来指定一个字符类别,所谓字符类别就是你想匹配的一个字符集。字符可以单个列出,也可以用“-”号分隔的两个给定字符来表示一个字符区间。例如, [abc] 将匹配"a", "b", 或 "c"中的任意一个字符;也可以用区间[a-c]来表示同一字符集,和前者效果一致。如果你只想匹配小写字母,那幺 RE 应写成 [a-z]。

  元字符在类别里并不起作用。例如,[akm$]将匹配字符"a", "k", "m", 或 "$" 中的任意一个;"$"通常用作元字符,但在字符类别里,其特性被除去,恢复成普通字符。


  你可以用补集来匹配不在区间范围内的字符。其做法是把`""`作为类别的首个字符;其它地方的`"^"`只会简单匹配 `"^"` 字符本身。例如,[5] 将匹配除 "5" 之外的任意字符。


  也许最重要的元字符是反斜杠""。 做为 Python 中的字符串字母,反斜杠後面可以加不同的字符以表示不同特殊意义。它也可以用于取消所有的元字符,这样你就可以在模式中匹配它们了。举个例子,如果你需要匹配字符 "[" 或 "",你可以在它们之前用反斜杠来取消它们的特殊意义: \[ 或 \\。


  一些用 "" 开始的特殊字符所表示的预定义字符集通常是很有用的,象数字集,字母集,或其它非空字符集。下列是可用的预设特殊字符:

  \d 匹配任何十进制数;它相当于类 [0-9]。

  \D 匹配任何非数字字符;它相当于类 [^0-9]。

  \s 匹配任何空白字符;它相当于类 [ \t\n\r\f\v]。

  \S 匹配任何非空白字符;它相当于类 [^ \t\n\r\f\v]。

  \w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。

  \W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]。


  这样特殊字符都可以包含在一个字符类中。如,[\s,.]字符类将匹配任何空白字符或","或"."。


  本节最後一个元字符是 . 。它匹配除了换行字符外的任何字符,在 alternate 模式(re.DOTALL)下它甚至可以匹配换行。"." 通常被用于你想匹配“任何字符”的地方。
  本文源自:ht tp://w w w.c svt.ne t/
阅读全文
id_1广告位-300*300
相关推荐

域名注册流程是什么?域名证书是什么?网站域名备案操作的流程是什么?

域名注册流程是什么?域名证书是什么?网站域名备案操作的流程是什么?
域名是一种稀缺资源,具有天然的排他性,域名一旦注册后,其他人就不能再注册相同的域...

网址注册流程和费用?从别人手里买域名,需要哪些流程?

网址注册流程和费用?从别人手里买域名,需要哪些流程?
首先需要了解是在哪个平台买的域名,基本分为以下几个不同的情况:1、同平台购买卖家...

域名怎么购买,初创公司都需要做哪些?买了域名,买了阿里云服务器,能备案了吗

域名怎么购买,初创公司都需要做哪些?买了域名,买了阿里云服务器,能备案了吗
需要。有的话也可以用。 域名备案是和服务器有关,但是只要是大陆的服务器都可以。一...

godaddy注册的域名如何申请域名证书老板在腾讯云买的域名,在阿里云上买的云服务器,这样能行吗?

godaddy注册的域名如何申请域名证书老板在腾讯云买的域名,在阿里云上买的云服务器,这样能行吗?
没问题的。其实域名注册方和云资源服务方本是可相互独立的。只不过现在云资源服务商都...

个人网站https证书申请怎么弄,个人网站可以申请https证书吗?服务器证书和ssl证书有什么区别吗?

个人网站https证书申请怎么弄,个人网站可以申请https证书吗?服务器证书和ssl证书有什么区别吗?
服务器证书是ssl证书中的一种,服务器证书包括基于域名申请的证书和基于IP申请的...

域名注册流程是什么?域名证书是什么?如何注册一个域名?

域名注册流程是什么?域名证书是什么?如何注册一个域名?
1.推荐一个信誉,质量,服务,稳定很好的网站,例如:520互联、中华网络、在这个...

[问题交流]什么叫域名?什么叫IP地址?什么叫DNS?什么叫URL?如何设置网站主目录及设置域名通过域名访问[url=http://www.qqsoft8.com]QQ软件吧经典头像[/url]

[问题交流]什么叫域名?什么叫IP地址?什么叫DNS?什么叫URL?如何设置网站主目录及设置域名通过域名访问[url=http://www.qqsoft8.com]QQ软件吧经典头像[/url]
如何设置网站主目录及设置域名通过域名访问[url=http://www.qqso...

我刚买了个域名里面有“URL转发”这是怎么回事?域名怎么转URL?

我刚买了个域名里面有“URL转发”这是怎么回事?域名怎么转URL?
不用呀!那些图片视频呀什么的你可以放你电脑上 把URL(地址)指向你图片的位置就...

短网址有什么用关于域名缩短的问题

短网址有什么用关于域名缩短的问题
会打字就会建网站,操作简单。建议先免费试用,看一下效果,不满意不付款。 具...

谁有稳定点的缩短网页的网址?这种超短网址怎么做的?

谁有稳定点的缩短网页的网址?这种超短网址怎么做的?
缩短地址服务也叫域名地址减肥服务,就是将很长的网页链接地址简化成可识别的简短地址...