微软的正则表

正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。

正则表达式示例

表达式 匹配

/^\s*$/


匹配空行。


/\d{2}-\d{5}/


验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。


/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/


匹配 HTML 标记。

下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为:

字符 说明

\


将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n”匹配换行符。序列“\\”匹配“\”,“\(”匹配“(”。


^


匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与“\n”或“\r”之后的位置匹配。


$


匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与“\n”或“\r”之前的位置匹配。


*


零次或多次匹配前面的字符或子表达式。例如,zo* 匹配“z”和“zoo”。* 等效于 {0,}。


+


一次或多次匹配前面的字符或子表达式。例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配。+ 等效于 {1,}。


?


零次或一次匹配前面的字符或子表达式。例如,“do(es)?”匹配“do”或“does”中的“do”。? 等效于 {0,1}。


{n}


是非负整数。正好匹配 n 次。例如,“o{2}”与“Bob”中的“o”不匹配,但与“food”中的两个“o”匹配。


{n,}


是非负整数。至少匹配 次。例如,“o{2,}”不匹配“Bob”中的“o”,而匹配“foooood”中的所有 o。“o{1,}”等效于“o+”。“o{0,}”等效于“o*”。


{n,m}


M 和 n 是非负整数,其中 n <= m。匹配至少 n 次,至多 m 次。例如,“o{1,3}”匹配“fooooood”中的头三个 o。‘o{0,1}‘ 等效于 ‘o?‘。注意:您不能将空格插入逗号和数字之间。


?


当此字符紧随任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式是“非贪心的”。“非贪心的”模式匹配搜索到的、尽可能短的字符串,而默认的“贪心的”模式匹配搜索到的、尽可能长的字符串。例如,在字符串“oooo”中,“o+?”只匹配单个“o”,而“o+”匹配所有“o”。


.


匹配除“\n”之外的任何单个字符。若要匹配包括“\n”在内的任意字符,请使用诸如“[\s\S]”之类的模式。


(pattern)


匹配 pattern 并捕获该匹配的子表达式。可以使用 $0…$9 属性从结果“匹配”集合中检索捕获的匹配。若要匹配括号字符 ( ),请使用“\(”或者“\)”。


(?:pattern)


匹配 pattern 但不捕获该匹配的子表达式,即它是一个非捕获匹配,不存储供以后使用的匹配。这对于用“or”字符 (|) 组合模式部件的情况很有用。例如,‘industr(?:y|ies) 是比 ‘industry|industries‘ 更经济的表达式。


(?=pattern)


执行正向预测先行搜索的子表达式,该表达式匹配处于匹配 pattern 的字符串的起始点的字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,‘Windows (?=95|98|NT|2000)‘ 匹配“Windows 2000”中的“Windows”,但不匹配“Windows 3.1”中的“Windows”。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。


(?!pattern)


执行反向预测先行搜索的子表达式,该表达式匹配不处于匹配 pattern 的字符串的起始点的搜索字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,‘Windows (?!95|98|NT|2000)‘ 匹配“Windows 3.1”中的 “Windows”,但不匹配“Windows 2000”中的“Windows”。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。


x|y


匹配 x 或 y。例如,‘z|food‘ 匹配“z”或“food”。‘(z|f)ood‘ 匹配“zood”或“food”。


[xyz]


字符集。匹配包含的任一字符。例如,“[abc]”匹配“plain”中的“a”。


[^xyz]


反向字符集。匹配未包含的任何字符。例如,“[^abc]”匹配“plain”中的“p”。


[a-z]


字符范围。匹配指定范围内的任何字符。例如,“[a-z]”匹配“a”到“z”范围内的任何小写字母。


[^a-z]


反向范围字符。匹配不在指定的范围内的任何字符。例如,“[^a-z]”匹配任何不在“a”到“z”范围内的任何字符。


\b


匹配一个字边界,即字与空格间的位置。例如,“er\b”匹配“never”中的“er”,但不匹配“verb”中的“er”。


\B


非字边界匹配。“er\B”匹配“verb”中的“er”,但不匹配“never”中的“er”。


\cx


匹配 x 指示的控制字符。例如,\cM 匹配 Control-M 或回车符。x 的值必须在 A-Z 或 a-z 之间。如果不是这样,则假定 c 就是“c”字符本身。


\d


数字字符匹配。等效于 [0-9]。


\D


非数字字符匹配。等效于 [^0-9]。


\f


换页符匹配。等效于 \x0c 和 \cL。


\n


换行符匹配。等效于 \x0a 和 \cJ。


\r


匹配一个回车符。等效于 \x0d 和 \cM。


\s


匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。


\S


匹配任何非空白字符。与 [^ \f\n\r\t\v] 等效。


\t


制表符匹配。与 \x09 和 \cI 等效。


\v


垂直制表符匹配。与 \x0b 和 \cK 等效。


\w


匹配任何字类字符,包括下划线。与“[A-Za-z0-9_]”等效。


\W


与任何非单词字符匹配。与“[^A-Za-z0-9_]”等效。


\xn


匹配 n,此处的 n 是一个十六进制转义码。十六进制转义码必须正好是两位数长。例如,“\x41”匹配“A”。“\x041”与“\x04”&“1”等效。允许在正则表达式中使用 ASCII 代码。


\num


匹配 num,此处的 num 是一个正整数。到捕获匹配的反向引用。例如,“(.)\1”匹配两个连续的相同字符。


\n


标识一个八进制转义码或反向引用。如果 \n 前面至少有 n 个捕获子表达式,那么 n 是反向引用。否则,如果 n 是八进制数 (0-7),那么 n 是八进制转义码。


\nm


标识一个八进制转义码或反向引用。如果 \nm 前面至少有 nm 个捕获子表达式,那么 nm 是反向引用。如果 \nm 前面至少有 n 个捕获,则 n 是反向引用,后面跟有字符 m。如果两种前面的情况都不存在,则 \nm 匹配八进制值 nm,其中 和 m 是八进制数字 (0-7)。


\nml


当 n 是八进制数 (0-3),m 和 l 是八进制数 (0-7) 时,匹配八进制转义码 nml


\un


匹配 n,其中 n 是以四位十六进制数表示的 Unicode 字符。例如,\u00A9 匹配版权符号 (©)。

时间: 2024-11-04 21:57:55

微软的正则表的相关文章

正则 表单验证

电话号码验证 案例<fieldset> <legend>正则表单验证</legend> <form action method="post" target="_self" onsubmit="return checkform();"> <input name id="telephone" type="text" msg> <input nam

正则表整理

  代码 说明 常用的元字符 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 常用的限定符 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 常用的反义代码 \W 匹配任意不是字母,数字,下划线,汉字的字符 \S 匹配任意不是空白符的字符 \D 匹配任意非数字的字符 \B 匹配不是

JavaScript 正则表单验证(用户名、密码、确认密码、手机号、座机号、身份证号)

1.关于JavaScript表单验证,如果使用双向绑定的前端js框架,会更容易的多.但是博主还是建议大家不要脱离源生js本身.因为源生js才是王道. 注意: a.代码中的错误提示可能会没有,在代码中找到 "错误.jpg"  图片,自己制作一个 b.验证的判断已经完成,只需要根据自己的验证规则进行表单验证,更换自己的正则表达式. c.博主将错误提示图片插入本文档中.需要更名为  "错误.jpg",放到与html根目录下方可使用.      (错误提示图片) <!

js正则表单验证汇总,邮箱验证,日期验证,电话号码验证,url验证,信用卡验证,qq验证

本文主要汇总各种正则验证,很多都是转载,本人也会尽可能验证准确性,如有错误欢迎留言 //trim()方法在有些浏览器中不兼容,最好自己重写一下 String.prototype.trim=function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); } //判断输入内容是否为空 function IsNull(){ var str = document.getElementById('str').value.trim(); if(str.

转载:正则表表达式

正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征.比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征. 正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址.(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便.(3)用来替换,比普通的替换更强大.

【jmeter】关联-正则表达和xpath

话说LoadRunner有的一些功能,比如:参数化.检查点.集合点.关联,Jmeter也都有这些功能,只是功能可能稍弱一些,今天就关联来讲解一下. JMeter的关联方法有两种:后置处理器-正则表达式提取器与XPath Extractor. 一.正则表达式提取器 1.添加正则表达式 在需要获得数据的上一个请求上右击添加一个后置处理器-->正则表达式提取器 解释: (1)引用名称:下一个请求要引用的参数名称,如填写activityID,则可用${activityID}引用它. (2)正则表达式:

正则表单式

/* 691 */ private int GPNumber = -1;/* 692 */ private boolean isNumber = false;/* 693 */ private TextField tf = new TextField("", 4); 去除反编译工具出来的/* 693 */这些符号 .*/\\*(.*)\\*/

Go语言的正则表式之regexp包

正则表达式都是大同小异,随便写几个案例: // code_029_regexp project main.go package main import ( "fmt" "regexp" ) //Go中的正则表达式 func main() { //返回保管正则表达式所有不重叠的匹配结果的[]string切片.如果没有匹配到,会返回nil. //案例1 context1 := "3.14 123123 .68 haha 1.0 abc 6.66 123.&qu

day6 反射,hashlib模块,正则匹配,冒泡,选择,插入排序

一.反射(自省) 首先通过一个例子来看一下本文中可能用到的对象和相关概念. import sys # 模块,sys指向这个模块对象import inspectdef foo(): pass # 函数,foo指向这个函数对象 class Cat(object): # 类,Cat指向这个类对象 def __init__(self, name='kitty'): self.name = name def sayHi(self): # 实例方法,sayHi指向这个方法对象,使用类或实例.sayHi访问