Python3 正则表达式 Regular Expression

2019/02/08
正则表达式
Regular Expression
掌握特殊符号
* (0, +00) # 贪婪匹配,按最多的匹配
>>> re.findall(‘alex*‘, ‘sddgljalexdhgb‘)
[‘alex‘]
>>> re.findall(‘alex*‘, ‘sdghshalexxxxxgdhg‘)
[‘alexxxxx‘]



+ (1, +00) # 贪婪匹配,按最多的匹配
>>> re.findall(‘alex+‘, ‘sdghshalexxxxxgfhg‘)
[‘alexxxxx‘]



? (0, 1) # 匹配前面的字母0个或1个
re.findall(‘alex?‘, ‘sdfaleghhfg‘)
[‘ale‘]
>>> re.findall(‘alex?‘, ‘dsalexxxdggh‘)
[‘alex‘]



{} {0, } == *
{1, } == +
{0, 1} == ?
{6} # 重复6次
{1,6} # 重复1——6任意次
>>> re.findall(‘alex{1,6}‘, ‘sgalexxxxxxxxxxgdfgfdgdxx‘)
[‘alexxxxxx‘]
>>> re.findall(‘alex{1,6}‘, ‘sgalexxgdfgfdgdxx‘)
[‘alexx‘]



^ # 开头直接匹配
>>> re.findall(‘^alex‘, ‘agfhjghfhd‘)
[]
>>> re.findall(‘^alex‘, ‘alexjghfhd‘)
[‘alex‘]



. # 通配符
>>> re.findall(‘alex.‘, ‘alexxc‘)
[‘alexx‘]
>>> re.findall(‘ale....x‘, ‘sdfaledfdfxfxx‘)
[‘aledfdfx‘]

>>> re.findall(‘q[a-z]‘, ‘fgjqfd‘)
[‘qf‘]
>>> re.findall(‘q[a-z]*‘, ‘fgjqfd6g‘)
[‘qfd‘]
>>> re.findall(‘q[a*z]‘, ‘sfqaaasdsdz‘)
[‘qa‘]
>>> re.findall(‘q[0-9]*‘, ‘sfsdqfgkg88‘)
[‘q‘]
>>> re.findall(‘q[A-Z]*‘, ‘sdfgqgsdgq‘)
[‘q‘, ‘q‘]
>>> re.findall(‘q[^a-z]‘, ‘sdfdsqwre‘) # ^ 代表非
[]
>>> re.findall(‘q[^a-z]‘, ‘sdfdsq77re‘)
[‘q7‘]



计算器作业,先找出最里层括号
>>> re.findall("\([^()]*\)", "12 + ( 34 * 6 + 2 - 5 * (2 - 1))")
[‘(2 - 1)‘]



\ # 最重要的转义字符,有意义-->无意义,无意义--->有意义
\d # 匹配任何十进制数,相当于类[0-9]
\D # 匹配任何非数字字符,相当于类[^0-9]
>>> re.findall("\d", "12 + ( 34 * 6 + 2 - 5 * (2 - 1))")
[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘6‘, ‘2‘, ‘5‘, ‘2‘, ‘1‘]
>>> re.findall("\d+", "12 + ( 34 * 6 + 2 - 5 * (2 - 1))")
[‘12‘, ‘34‘, ‘6‘, ‘2‘, ‘5‘, ‘2‘, ‘1‘]
>>> re.findall("[0-9]+", "12 + ( 34 * 6 + 2 - 5 * (2 - 1))")
[‘12‘, ‘34‘, ‘6‘, ‘2‘, ‘5‘, ‘2‘, ‘1‘]
>>> re.findall("\D", "12+(34*6+2-5*(2-1))")
[‘+‘, ‘(‘, ‘*‘, ‘+‘, ‘-‘, ‘*‘, ‘(‘, ‘-‘, ‘)‘, ‘)‘]
>>>



\s # 匹配任何空白字符,相当于类[\t\n\r\f\v]
\S # 匹配任何非空白字符,相当于类[^\t\n\r\f\v]
>>> re.findall("\s", "hello world!")
[‘ ‘]
>>> re.findall("\S", "hello world!")
[‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘, ‘w‘, ‘o‘, ‘r‘, ‘l‘, ‘d‘, ‘!‘]
>>> re.findall("\S+", "hello world!")
[‘hello‘, ‘world!‘]
>>>



\w # 匹配任何字母数字字符和_,相当于类[a-zA-Z0-9_]
>>> re.findall("\w", "hello _world!")
[‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘, ‘_‘, ‘w‘, ‘o‘, ‘r‘, ‘l‘, ‘d‘]
>>> re.findall("\w+", "hello _world!")
[‘hello‘, ‘_world‘]
>>>
\W # 匹配任何非字母数字字符,相当于类[^a-zA-Z0-9_]
>>> re.findall("\W+", "hello _world!")
[‘ ‘, ‘!‘]
>>>



\ # \ 转义
>>> re.findall(‘www*baidu‘, ‘www*baidu‘)
[]
>>> re.findall(‘www\*baidu‘, ‘www*baidu‘)
[‘www*baidu‘]
>>>

原文地址:https://www.cnblogs.com/qianjunye/p/10356603.html

时间: 2024-10-10 19:17:05

Python3 正则表达式 Regular Expression的相关文章

正则表达式 ( Regular Expression )

正则表达式中的元字符 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.例如,“n”匹配字符“n”.“\n”匹配换行符.序列“\\”匹配“\”,“\(”匹配“(”. ^ 匹配输入字符串开始的位置.如果设置了 RegExp 对象的 Multiline 属性,^ 还会与“\n”或“\r”之后的位置匹配. $ 匹配输入字符串结尾的位置.如果设置了 RegExp 对象的 Multiline 属性,$ 还会与“\n”或“\r”之前的位置匹配. * 零次或多次匹配前面的字符或子表达式.

Python正则表达式Regular Expression基本用法

资料来源:http://blog.csdn.net/whycadi/article/details/2011046   直接从网上资料转载过来,作为自己的参考.这个写的很清楚.先拿来看看. 1.正则表达式re模块的基本函数. (1)findall函数的用法 findall(rule,target[,flag])是在目标字符串中找到符合规则的字符串.参数说明:rule表示规则,target表示目标字符串,[,flag]表示的是规则选项.返回的结果是一个列表.若没找到符合的,是一个空列表. 如: 因

C#中【正则表达式regular expression】相关的知识

Regex System.Text.RegularExpressions.Regex      regex应该是regular expression的缩写 https://msdn.microsoft.com/zh-cn/library/system.text.regularexpressions.regex(v=vs.110).aspx Represents an immutable regular expression.[immutable 不可变的] 代表了不可变的正则表达式 The Re

正则表达式REGular Expression

基本正则表达式:Basic REGEXP 元字符 释义 .  匹配任意单个字符  []  匹配指定范围内单个字符 [^]  匹配指定范围外单个字符 * 其前面字符出现任意次 \? 其前面字符出现0次或者1次 \{m,n\} 其前面字符至少m次,至多n次:没上限省略n .* 任意长度的任意字符 ^ 锚定行首 $ 锚定行尾 \< , \b 锚定词首 \> , \b 锚定词尾 \(\) 分组 \1, \2, \3 后项引用 扩展正则表达式:Extended REGEXP 元字符 释义 .  匹配任意

javascript基础知识之正则表达式(regular expression)

一种字符串匹配的模式,用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等.注意:在javascript中正则表达式也是一种对象1:创建正则表达式两种方式:隐式创建(文字量方法)和显示创建(使用构造函数)eg:文字量方法:var regExp = /pattern/flags;将文字量的正则表达式赋值给一个变量,包含在两个斜杠之间的一个或多个字符,在后一个斜杠的后面,可以指定一个或多个选项.var regExp1 = /abc/;var regExp2 = /a

C#学习记录5——正则表达式 Regular Expression

正则表达式,使用一个字符串来匹配符合一定标准的一系列字符串.非常利于检查字符串的格式,例如,注册登录时对信息格式的检查. C#的正则表达式在命名空间System.Text.RegularExpressions下 例1. 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System

Regular Expression(正则表达式)之邮箱验证

正则表达式(regular expression, 常常缩写为RegExp) 是一种用特殊符号编写的模式,描述一个或多个文本字符串.使用正则表达式匹配文本的模式,这样脚本就可以轻松的识别和操作文本.其实,正则表达式是值得大家花时间学习的.正则表达式不仅在javaScript 中有用,在其他许多地方也可以使用正则表达式,例如其他编程语言(比如Perl,Java,C#,Python 和PHP ),Apache 配置文件以及BBEdit 和TextMate 等文本编辑器.甚至Adobe Dreamwe

Python正则表达式 re(regular expression)

1. 点. .: 代表一个字符 (这个跟linux的正则表达式是不同的,那里.代表的是后面字符的一次或0次出现) 2. 转义 \\ 或者 r'\': 如 r'python\.org' (对.符号的转义) 3. ^ 非或叫做排除 如[^abc]: 任何以非a,b,c的字符 4. | 选择符 如python|perl (从python和perl选择一个) 也可以: p(ython|erl) 5. ? 可选项 如: r'(http://)?(www\.)?python\.org' (http://和w

LeetCode 10 Regular Expression Matching (正则表达式匹配)

翻译 实现支持"."和"*"的正则表达式匹配. "." 匹配支持单个字符 "*" 匹配零个或多个前面的元素 匹配应该覆盖到整个输入的字符串(而不是局部的). 该函数的原型应该是: bool isMatch(const char * s, const char * p) 示例: isMatch("aa","a") → false isMatch("aa","a