python note 15 正则表达式

# 正则表达式 只和字符串打交道

# 正则表达式的规则
# 规则 字符串 从字符串中找到符合规则的内容

# 字符组 : [] 写在中括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的

# [0-9] 匹配数字
# [a-z] 匹配小写字母
# [A-Z] 匹配大写字母
# [8-9]
# [a-zA-Z] 匹配大小写字母
# [a-zA-Z0-9] 匹配大小写字母+数字
# [a-zA-Z0-9_] 匹配数字字母下滑线

# 元字符

# \w  匹配数字字母下滑线 word关键字 [a-zA-Z0-9_]
# \d  匹配所有的数字     digit     [0-9]
# \s  匹配所有的空白符 回车/换行符 制表符 空格   space  [\n\t ]
    # 匹配换行符 回车 \n
    # 匹配制表符 tab  \t
    # 匹配空格
# \W \D \S 和\w \d \s取反
    # [\s\S] [\d\D] [\w\W]是三组全集 意思是匹配所有字符
# \b 表示单词的边界

# ^ $

# ^ 匹配一个字符串的开始
# $ 匹配一个字符串的结束
# . 表示匹配 除换行符之外的所有字符
# []  只要出现在中括号内的内容都可以被匹配
# [^] 只要不出现在中括号中的内容都可以被匹配
# 有一些有特殊意义的元字符进入字符组中会回复它本来的意义 : . | [ ] ( )
# a|b  或  符合a规则的或者b规则的都可以被匹配
    # 如果a规则是b规则的一部分,且a规则比b规则要苛刻/长,就把a规则写在前面
    # 将更复杂的\更长的规则写在最前面
# () 分组  表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组

# 量词

# {n}表示 这个量词之前的字符出现n次
# {n,} 表示这个量词之前的字符至少出现n次
# {n,m} 表示这个量词之前的字符出现n-m次
# ? 表示匹配量词之前的字符出现 0次 或者 1次 表示可有可无
# + 表示匹配量词之前的字符出现 1次 或者 多次
# * 表示匹配量词之前的字符出现 0次 或者 多次

# 练习题

# 匹配整数 \d+
# 匹配小数 \d+\.\d+
# 匹配小数或者整数
    # \d+\.\d+|\d+
    # \d+(\.\d+)?
# 匹配身份证号码 : [1-9]\d{16}[\dx]|[1-9]\d{14}
                # [1-9]\d{14}(\d{2}[\dX])?

# 正则表达式的匹配特点 : 贪婪匹配
# 它会在允许的范围内取最长的结果
# 非贪婪模式/惰性匹配 : 在量词的后面加上?
    # .*?x   匹配任意非换行符字符任意长度 直到遇到x就停止

# 关于字符串挪到python中的转义的问题 : 只需要在工具中测试完毕,确认可以匹配上之后,挪到python中在字符串的外面加上r,r‘‘即可

# print(r‘\\n‘)
# print(r‘\n‘)

原文地址:https://www.cnblogs.com/alifetimelove/p/10777064.html

时间: 2024-10-19 03:06:13

python note 15 正则表达式的相关文章

【转载】Python使用中文正则表达式匹配指定中文字符串的方法示例

本文实例讲述了Python使用中文正则表达式匹配指定中文字符串的方法.分享给大家供大家参考,具体如下: 业务场景: 从中文字句中匹配出指定的中文子字符串 .这样的情况我在工作中遇到非常多, 特梳理总结如下. 难点: 处理GBK和utf8之类的字符编码, 同时正则匹配Pattern中包含汉字,要汉字正常发挥作用,必须非常谨慎.推荐最好统一为utf8编码,如果不是这种最优情况,也有酌情处理. 往往一个具有普适性的正则表达式会简化程序和代码的处理,使过程简洁和事半功倍,这往往是高手和菜鸟最显著的差别.

Python学习-38.Python中的正则表达式(二)

在Python中,正则表达式还有较其他编程语言有特色的地方.那就是支持松散正则表达式了. 在某些情况,正则表达式会写得十分的长,这时候,维护就成问题了.而松散正则表达式就是解决这一问题的办法. 用上一次分组的代码作为例子: 1 import re 2 userinput = input("please input test string:") 3 m = re.match(r'(\d{3,4})-(\d{8})',userinput) 4 if m: 5 print('区号:' + m

【转载】Python中的正则表达式教程

本文http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 正则表达式经常被用到,而自己总是记不全,转载一份完整的以备不时之需. 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现

Python基础 :正则表达式

一.前言 1.1正则表达式简述 正则表达式是一种查找以及字符串替换操作.正则表达式在文本编辑器中广泛使用,比如正则表达式被用于: 1.检查文本中是否含有指定的特征词 2.找出文中匹配特征词的位置 3.从文本中提取信息,比如:字符串的子串 4.修改文本 与文本编辑器相似,几乎所有的高级编程语言都支持正则表达式.在这样的语境下,"文本"也就是一个字符串,可以执行的操作都是类似的.一些编程语言(比如Perl,JavaScript)会检查正则表达式的语法. 1.2 常用的正则匹配工具 在线匹配

Python基础之 正则表达式指南

本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程. 注意:本文基于Python2.4完成:如果看到不明白的词汇请记得百度谷歌或维基,whatever. 尊重作者的劳动,转载请注明作者及原文地址 >.<html 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法

Python中re(正则表达式)模块函数学习

今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍Python中常用的正则表达式处理函数. 方法/属性 作用 match() 决定 RE 是否在字符串刚开始的位置匹配 search() 扫描字符串,找到这个 RE 匹配的位置 findall() 找到 RE 匹配的所有子串,并把它们作为一个列表返回 finditer() 找到 RE 匹配的所有子串,并把它们作为一个迭代器返回 match() 函数只检查 RE 是否在字符串开始处匹配

python基础之正则表达式

什么是正则表达式? 正则表达式并不仅仅是python的专利,几乎其他的语言都有正则表达式.就比如bash就有正则表达式命令--grep,个人感觉python中的正则表达式类似于 grep -o 正则表达式是用于处理字符串的强大工具,虽然效率上可能不高,但是功能强大! 正则表达式设定了一系列语法,比如说“ . ”表示任意单个字符,\d表示单个数字……  通过组合这些规则我们可以形成一个pattern(模式)!凡是符合这个pattern的字符串,我们就认为它被匹配了,否则,则代表这个字符串是不合法的

python之(re)正则表达式上

python正则表达式知识预备 正则表达式使用反斜杠" \ "来代表特殊形式或用作转义字符,这里跟Python的语法冲突,因此,Python用" \\\\ "表示正则表达式中的" \ ",因为正则表达式中如果要匹配" \ ",需要用\来转义,变成" \\ ",而Python语法中又需要对字符串中每一个\进行转义,所以就变成了" \\\\ ". 上面的写法是不是觉得很麻烦,为了使正则表达式

Python学习 之 正则表达式

1.简单的正则表达式 import re s=r'abc' re.findall(s,"aaaaaaaaaaaaaaa") #结果为[] re.findall(s,"abcaaaaaaaaaaaa") #结果为['abc'] re.findall(s,"abcaaaaaabcaaaa") #结果为['abc','abc'] 2.元字符 [] :指定一个字符集  例如:r't[io]p'  满足的字符串包括'tip'或'top' 加上^表示取反