首页 > 其他 > 详细

正则表达式学习笔记

时间:2020-05-14 01:09:30      阅读:50      评论:0      收藏:0      [点我收藏+]

1、常用网址

在线正则表达式解析:https://regexper.com/
正则表达式在线测试:https://regex101.com/

2、匹配单个字符

技术分享图片

3、匹配多个字符

技术分享图片

4、示例

\ba\w*\b匹配以字母a开头的单词-先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。

\d+匹配1个或更多连续的数字。这里的+是和*类似的特殊代码,不同的是*代表重复任意次(可能是0次),而+则代表重复1次或更多次。

\b\w{6}\b 匹配刚好6个字母/数字的单词

例如:deerchao\.cn匹配deerchao.cn,c:\\windows匹配c:\windows,2\^8匹配2^8(通常这是2的8次方的书写方式)。

Windows\d+匹配Windows后面跟1个或更多数字

13\d{9}匹配以13后面跟9个数字(中国的手机号)

^\w+匹配一行的第一个单词(或整个字符串的第一个单词,具体代表哪个意思得看选项设置)

例子:\S+代表不包含空白符的字符串。

<a[^>]+>代表用尖括号括起来的以a开头的字符串。

0\d{2}-\d{8}|0\d{3}-\d{7}这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)。

\(0\d{2}\)[- ]?\d{8}|0\d{2}[- ]?\d{8}这个表达式匹配3位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔。你可以试试用替换|把这个表达式扩展成也支持4位区号的。

\d{5}-\d{4}|\d{5}这个表达式用于匹配美国的邮政编码。美国邮编的规则是5位数字,或者用连字号间隔的9位数字。之所以要给出这个例子是因为它能说明一个问题:使用替换时,顺序是很重要的。如果你把它改成\d{5}|\d{5}-\d{4}的话,那么就只会匹配5位的邮编(以及9位邮编的前5位)。原因是匹配替换时,将会从左到右地测试每个条件,如果满足了某个条件的话,就不会去管其它的替换条件了。

 

(\d{1,3}\.){3}\d{1,3}是一个简单的IP地址匹配表达式--- >> 符类来描述一个正确的IP地址:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

5、python里正则相关的模块及用法

# 系统自带的re模块实现正则
import re
# 正则表达式& 创建待匹配的字符串
src_str = "python is very best ,bestttt"
#正则表达式,往往在python中,需要在前面加上r
# 默认为贪婪模式匹配,尽量多匹配
#re_str =r".+best"
# 匹配第一个就行
re_str = r".+?best"
#进行匹配
#match
# 只能从头开始匹配
# 如果匹配不上,那就返回None,能匹配上,那么会返回Match的匹配对象
result = re.match(re_str,src_str)
# 可以使用match对象中的group()方法获取返回值
result.group()
pass
#从头开始查找,满足要求的内容就返回
#search
#从头开始查找,找到所有满足正则表达式条件的所有内容返回,返回列表
#findall
#从头开始查找,找到所有满足正则表达式条件的所有内容返回迭代器
#finditer

 

正则表达式学习笔记

原文:https://www.cnblogs.com/shishibuwan/p/12885677.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!