3.2.3 正則表達式对象

编译之后的正則表達式对象支持的方法和属性例如以下:

regex.search(string[, pos[, endpos]])

从字符串string的開始位置pos開始匹配正則表達式。到位置endpos结束匹配。匹配成功返回match对象。否则返回None。

括号里的參数表示可选。比方rx.search(string, 0, 50)等价于rx.search(string[:50], 0)。

样例:

print(‘regex.search()‘)

pattern = re.compile(‘c‘)

print(pattern.search(‘caimouse‘))

print(pattern.search(‘caimouse‘, 1))

结果输出例如以下:

regex.search()

<_sre.SRE_Match object; span=(0, 1), match=‘c‘>

None

regex.match(string[, pos[, endpos]])

指定从字符串string头部或者指定位置的头部匹配。參数pos默认值为0。表示从字符串指定位置開始进行匹配。參数endpos匹配结束位置。

假设搜索字符串任何位置全部字符串,须要使用regex.search()方法。

样例:

print(‘regex.match()‘)

pattern = re.compile(‘c‘)

print(pattern.match(‘caimouse‘))

print(pattern.match(‘caimouse‘, 1))

结果输出例如以下:

regex.match()

<_sre.SRE_Match object; span=(0, 1), match=‘c‘>

None

regex.fullmatch(string[, pos, endpos]])

当整个string与正則表達式匹配时返回match对象,否则返回None。參数pos与endpos同search()的意义一样。

样例:

print(‘regex.fullmatch()‘)

pattern = re.compile(‘c[ai]‘)

print(pattern.fullmatch(‘caimouse‘))

print(pattern.fullmatch(‘caimouse‘, 0,2))

结果输出例如以下:

regex.fullmatch()

None

<_sre.SRE_Match object; span=(0, 2), match=‘ca‘>

regex.split(string, maxsplit=0)

本方法与re.split()一样。

regex.findall(string[, pos[, endpos]])

与re.findall()一样。本方法接收參数pos与endpos參数,能够指定開始位置和结束位置。

regex.finditer(string[, pos[, endpos]])

与re.finditer()一样。本方法接收參数pos与endpos參数。能够指定開始位置和结束位置。

regex.sub(repl, string, count=0)

与re.sub()一样。

regex.subn(repl, string, count=0)

与re.subn()一样。

regex.flags

regex匹配的标志。

样例:

print(‘regex.flags‘)

pattern = re.compile(‘c[ai]‘)

print(pattern.fullmatch(‘caimouse‘))

print(pattern.flags)

pattern = re.compile(‘c[ai]‘, re.ASCII)

print(pattern.flags)

结果输出例如以下:

regex.flags

None

32

256

regex.groups

正則表達式匹配分组的数量。

样例:

print(‘regex.groups‘)

pattern = re.compile(‘(?

P<style>[^|]*)\|(?P<tags>[^|]*)‘)

print(pattern.findall(‘OL|AAAAA‘))

print(pattern.groups)

结果输出例如以下:

regex.groups

[(‘OL‘, ‘AAAAA‘)]

2

regex.groupindex

返回分组的名称和序号,以字典方式返回。

假设没有返回空字典。

样例:

print(‘regex.groups‘)

pattern = re.compile(‘(?P<style>[^|]*)\|(?P<tags>[^|]*)‘)

print(pattern.findall(‘OL|AAAAA‘))

print(pattern.groups)

print(pattern.groupindex)

结果输出例如以下:

regex.groups

[(‘OL‘, ‘AAAAA‘)]

2

{‘style‘: 1, ‘tags‘: 2}

regex.pattern

已经编译的正則表達式的字符串。

样例:

print(‘regex.pattern‘)

pattern = re.compile(‘(?P<style>[^|]*)\|(?P<tags>[^|]*)‘)

print(pattern.findall(‘OL|AAAAA‘))

print(pattern.pattern)

结果输出例如以下:

regex.pattern

[(‘OL‘, ‘AAAAA‘)]

(?P<style>[^|]*)\|(?P<tags>[^|]*)

蔡军生  QQ:9073204  深圳

时间: 2024-08-24 15:41:24

3.2.3 正則表達式对象的相关文章

正則表達式

一.概述 正則表達式是一种能够用于模式匹配和替换的强有力的工具.其作用例如以下: (1)測试字符串的某个模式.比如,能够对一个输入字符串进行測试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证. (2)替换文本.能够在文档中使用一个正則表達式来标识特定文字,然后能够所有将其删除,或者替换为别的文字: (3)依据模式匹配从字符串中提取一个子字符串. 能够用来在文本或输入字段中查找特定文字. 二.匹配字符 字符 解释说明 \ 将下一字符标记为特殊字符.文本.反向引用或

C++ Tr1中的正則表達式

要使用正則表達式,首先要有类库支持,C++曾经不像Java或者C#有完整的类库使用,可是在Tr1中早已提供了正则库,仅仅是非常少被人们注意罢了 TR1中包括了一个正则库,来自Boost的 regex,已经纳入了0x新标准,可是新标准遥遥无期.即便如此,如今非常多编译器也已经支持了,特别是微软,步伐最快! 尽管如今新标准还未全然支持,可是早点了解一下也是好的: #include <iostream> #include <regex> int _tmain(int argc, _TCH

c++ 正則表達式

正則表達式是经常使用的一种方法.比較有名的类库是boost,可是这个类库在重了.全部就像找一些轻量级的类库. 后来发现准标准的库tr1已经非常方便了,微软vs2008 sp1 以上版本号都支持了.全部就直接用它非常方便了. 并且支持unicode编码,还是非常方便的. 样例: #include <iostream> #include <string> #include <regex> int _tmain(int argc, _TCHAR* argv[]) { std:

正則表達式--js使用案例

前言:在前端页面使用中.遇到日期格式的验证.開始使用了一款表单控件验证.可是不兼容!!并且使用起来还受到非常大约束.所以就决定自己写原生js. 为了完毕日期格式的验证.第一步,当然是学会使用正則表達式. 曾经都是直接复制使用,这次理解原理.自己原生写. 接前两篇:js使用案例. //检測控件内容内容格式--控制为"2014-07-21". functioncheckDate(formContorId,message){ // 获取控件对象. var temp = document.ge

javascript中的正則表達式

对文本数据进行操作是JavaScript中常见的任务.正則表達式通过同意程序猿指定字符串匹配的模式来简化诸如验证表单中输入是否具有正确格式之类的任务. 1.正則表達式标记: 字符 含义 举例 i 大写和小写不敏感 对于模式/http/i  "http" 和"HttP" 一样能够匹配 g 全局匹配.找出所有匹配字符串,而不不过找到第一个就返回. 经常使用于替换 m 多行匹配 2.正則表達式位置指示符:规定模式在它所匹配的字符串里的位置. 字符 含义 举例 ^ 开头 对

经验之谈—正則表達式实现图文混排

在项目中,我们常常须要发表情,以及常常须要将表情字符转换成表情.由于表情是一个图片.所以我们发给server的时候,实际上是发一段特殊的文字给server,然后转换成表情.以免浪费用户过多的流量. 那接下来.我们就来介绍一下,怎样使用正則表達式实现图文混排呢? 为了以后的代码的管理方便,我们抽取出两个类: NSString+Regular.h中.我们暴露两个方法出来: /** * 返回正則表達式匹配的第一个结果 * * @param pattern 正則表達式 * * @return 匹配的第一

JAVA学习第六十五课 — 正則表達式

正則表達式:主要应用于操作字符串.通过一些特定的符号来体现 举例: QQ号的校验 6~9位.0不得开头.必须是数字 String类中有matches方法 matches(String regex) 告知此字符串是否匹配给定的正則表達式. regex,就是给定的正則表達式 public static void checkQQ() { //第一位是数字1-9,第二位以后是0-9,除去第一位数剩下数字位数范围是5到8位 String regex = "[1-9][0-9]{5,8}";//正

HDU-1039-Easier Done Than Said?(Java &amp;amp;&amp;amp; 没用正則表達式是我的遗憾.....)

Easier Done Than Said? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9845    Accepted Submission(s): 4784 Problem Description Password security is a tricky thing. Users prefer simple password

js正則表達式语法

1. 正則表達式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之同样的一个字符. 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功:匹配到的内容是:"c":匹配到的位置是:開始于2,结束于3.(注:下标从0開始还是从1開始,因当前编程语言的不同而可能不同) 举例2:表达式 "bcd&