正则表达式小记--匹配但不获取

(?!=XXX[:|:|\s]?)\d{16}
(?!=XXX)表示查找XXX内容,但最终结果不包括它
(?=XXX)表示查找XXX内容,最终结果包括它
[:|:|\s]? 表示 全角冒号,半角冒号,空格 或没有字符

(pattern) 匹配pattern 并获取这一匹配。所获取的匹配可以从产生的 
Matches 集合得到,在VBScript 中使用 SubMatches 集合,在
Visual Basic Scripting Edition 中则使用 $0…$9 属性。要
匹配圆括号字符,请使用 ‘\(‘ 或 ‘\)‘。

(?:pattern) 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹
配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合
一个模式的各个部分是很有用。例如, ‘industr(?:y|ies) 就
是一个比 ‘industry|industries‘ 更简略的表达式。
(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符
串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后
使用。例如,‘Windows (?=95|98|NT|2000)‘ 能匹配"Windows 
2000"中的"Windows",但不能匹配"Windows3 .1"中"Windows"。
预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹
配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之
后开始。 
<!--
以上这2个,(?:pattern) (pattern)
好像是(?!=pattern)才达到 匹配 pattern 但不获取匹配结果 的效果 2007-4-9
-->

(?!pattern) 负向预查,在任何不匹配Negative lookahead matches the 
search string at any point where a string not matching 
pattern 的字符串开始处匹配查找字符串。这是一个非获取匹
配,也就是说,该匹配不需要获取供以后使用。例如‘Windows
(?!95|98|NT|2000)‘ 能匹配 "Windows 3.1" 中的 "Windows",
但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字
符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开
始下一次匹配的搜索,而不是从包含预查的字符之后开始

时间: 2024-10-11 12:03:53

正则表达式小记--匹配但不获取的相关文章

在C#中使用正则表达式自动匹配并获取所需要的数据

转自:http://my.oschina.net/bv10000/blog/111736 正则表达式能根据设置匹配各种数据(比如:e-mail地址,电话号码,身份中号码等等).正则表达式功能强大,使用灵活,C#,Java,JavaScript等多种语言都支持正则表达式.在互联网上“抓取数据”更是少不了使用正则表达式.今天我要说的是在C#中使用正则表达式自动匹配并获取所需要的数据. 从下面是某个IP查询网站返回查询结果的一个部分(字符串),现在就是要从这个字符串中获取“查询结果1:”后面的“北京市

C regex 正则表达式小记

如果用户熟悉Linux下的sed.awk.grep或vi,那么对正则表达式这一概念肯定不会陌生.由于它可以极大地简化处理字符串时的复杂度,因此现在已经在许多Linux实用工具中得到了应用.千万不要以为正则表达式只是Perl.Python.Bash等脚本语言的专利,作为C语言程序员,用户同样可以在自己的程序中运用正则表达式.     标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Re

idea 使用正则表达式 进行匹配替换

关于正则表达式 可以参考相应的笔记 另外 如果要提取正则表达式中匹配到的内容,使用$1 - $... 按顺序取(第一个表达式 到 第N个表达式匹配到的数据),  这点和linux正则获取的方式是一样的

正则表达式小记

先来看下面一个例子,解析如下IP: 192.160.1.234[port=8080,type=ftp] 将上述表达式中的IP地址,端口号和端口类型提取出来. 没有正则表达式之前,大家猛的一看,估计崩溃了.没办法,用string类的方法截取呗.于是,我们写下了如下代码: string str = "192.160.1.234[port=8080,type=ftp]"; int indexIP = str.IndexOf("["); string ip = str.Su

使用正则表达式进行匹配

使用正则表达式的目的是为了实现比字符串处理函数更加灵活的处理方式,因此跟字符串处理函数一样,其主要用来判断子字符串是否存在.字符串替换.分割字符串.获取模式子串等. PHP使用PCRE库函数来进行正则处理,通过设定好模式,然后调用相关的处理函数来取得匹配结果. preg_match用来执行一个匹配,可以简单的用来判断模式是否匹配成功,或者取得一个匹配结果,他的返回值是匹配成功的次数0或者1,在匹配到1次以后就会停止搜索. $subject = "abcdef"; $pattern =

含有换行符的正则表达式如何匹配

含有换行符的正则表达式如何匹配: \s\S \S是各种空白字符,比如\n\t之类的,而\s是^\S 点号( . )可以匹配换行符之外的任何单个字符,被称之为通配符. 匹配包含\n在內的任何字符用 (.|\n). import re strvar = """hello world!""" patt = r'(.|\n)*' rs = re.match(patt, strvar) print rs.group() 用正则表达式来获取一段文本中的任意字

php中正则表达式的匹配和数据验证总结

正则表达式能匹配复杂的字符串形式,比字符串处理函数功能更加多,只不过执行效率有所降低,但是可以实现非常复杂的匹配,下面总结一下 1.简单的字符串匹配,判断指定字符串是不是在另一个字符串中,和字符串查找函数差不多 1 $p = '/苹果/'; 2 $str = "我喜欢吃苹果和香蕉"; 3 if (preg_match($p, $str)) { 4 echo '匹配成功!'; 5 }else{ 6 echo "匹配失败!"; 7 } 可以看出preg_match()函

JMeter通过正则表达式、JSON提取器获取变量

??使用Jmeter开发测试脚本的过程中,经常需要对响应结果进行提取变量,本文就介绍两种经常用到的方法,一种是正则表达式提取器,一种是JSON提取器??本次介绍一种经常用到的业务场景,首先登录获取Token,然后将获取的Token赋予到HTTP信息头,供其它接口调用 一.JSON提取器 JSON提取器是专门用来对返回的响应结果是application/json格式的报文进行提取,如下所示 首先在需要提前变量的HTTP请求点击右键>添加>后置处理器>JSON提取器 JSON提取器,变量应用

17._4Csharp中正则表达式的匹配

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Text.RegularExpressions; namespace _17._4Csharp中正则表达式的匹配 { class Program { static void Main(string[] args) { string patte