3.2.1 正則表達式的语法(2)

(?!...)

向前识别不等于指定字符就匹配。当下一个单词不等于...时就识别出来括号前面指定的单词。

比方Isaac(?

!Asimov)。就会这样推断。当紧跟着Isaac后面不是单词Asimov时,就把它匹配出来。

样例:

print(‘Isaac(?!Asimov)‘)

print(u‘abcdAsimovIsaacttttt‘)

m = re.findall(u‘Isaac(?

!Asimov)‘, u‘abcdAsimovIsaacttttt‘)

if m:

print(m)

print(u‘abcdIsaacAsimovttttt‘)

m = re.findall(u‘Isaac(?

!Asimov)‘, u‘abcdIsaacAsimovttttt‘)

if m:

print(m)

输出结果例如以下:

Isaac(?

!Asimov)

abcdAsimovIsaacttttt

[‘Isaac‘]

abcdIsaacAsimovttttt

(?

<=...)

向后识别等于指定字符。这里所谓向后,就是已经扫描过的字符。比方(?<=cai)mouse规则,就是碰到caimouse时,就把mouse识别出来,意思就是扫描到mouse时,须要往回查看已经扫描的字符是否是cai,假设是就匹配成功。

样例:

print(‘(?<=cai)mouse‘)

m = re.findall(u‘(?

<=cai)mouse‘, u‘caimouse mousecai ccaimouse‘)

if m:

print(m)

结果输出例如以下:

(?

<=cai)mouse

[‘mouse‘, ‘mouse‘]

(?<!...)

向后识别不等于指定字符。这里所谓向后。就是已经扫描过的字符。比方(?<!cai)mouse规则。就是碰到mouse时,在它前面不能是字符cai,假设是cai就不匹配成功。

样例:

print(‘(?<!cai)mouse‘)

m = re.findall(u‘(?<!cai)mouse‘, u‘caimouse mousecai ccaimouse‘)

if m:

print(m)

结果输出例如以下:

(?<!cai)mouse

[‘mouse‘]

蔡军生 QQ:9073204  深圳

时间: 2024-12-12 16:24:07

3.2.1 正則表達式的语法(2)的相关文章

iOS正則表達式(一)

什么是正則表達式? 正則表達式是对字符串操作的一种逻辑公式. 作用? 在iOS开发中我们通常使用正則表達式来匹配给定的字符串是否符合我们的业务逻辑,比方说用户注冊帐号仅仅能是手机号或者邮箱等.我们还能够使用正則表達式来从一段字符串其中截取我们须要的字符串,比方说网页源代码中我们须要截取某些个图片地址等.总得来说.在iOS开发中正則表達式的作用有两点: 1. 检測给定的字符串是否符合业务逻辑 2. 从目标字符串中获取我们想要的特定字符串 怎样在OC中使用正則表達式? 1.利用NSPredicate

UltraEdit正則表達式介绍及实例

前几天,有个将Excel中的数据导入到数据库中的需求.原本想到用程序读取Excel中的数据并存储到数据库中,但经一哥们的提醒,说用 EditPlus或UltraEdit这种工具直接将数据拼凑成SQL插入语句更easy方便,也不用写不论什么代码.因为我本人使用UltraEdit,故考 虑用UltraEdit的正則表達式来做这件事,以下是这种一个过程. 如果导入的表字段为:name,email. introduce.在Excel中的数据相应的也是这种字段.值得注意的是:在excel中的数据,比方in

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

正則表達式

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

js正則表達式语法

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

Java正則表達式入门

众所周知,在程序开发中,难免会遇到须要匹配.查找.替换.推断字符串的情况发生,而这些情况有时又比較复杂,假设用纯编码方式解决,往往会浪费程序猿的时间及精力.因此,学习及使用正則表達式,便成了解决这一矛盾的主要手段. 大 家都知道,正則表達式是一种能够用于模式匹配和替换的规范,一个正則表達式就是由普通的字符(比如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描写叙述在查找文字主体时待匹配的一个或多个字符串.正則表達式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.  自从jdk1