常用正则表达式
- 格式:doc
- 大小:28.00 KB
- 文档页数:9
常用正则表达式大全匹配中文字符的正则表达式:[u4e00-u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^x00-xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:ns*r评注:可以用来删除空白行匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? />评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力匹配首尾空白字符的正则表达式:^s*|s*$评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*评注:表单验证时很实用匹配网址URL的正则表达式:[a-zA-z]+://[^s]*评注:网上流传的版本功能很有限,上面这个基本可以满足需求匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 评注:表单验证时很实用匹配国内电话号码:d{3}-d{8}|d{4}-d{7}评注:匹配形式如0511-******* 或021-********匹配腾讯QQ号:[1-9][0-9]{4,}评注:腾讯QQ号从10000开始匹配中国邮政编码:[1-9]d{5}(?!d)评注:中国邮政编码为6位数字匹配身份证:d{15}|d{18}评注:中国的身份证为15位或18位匹配ip地址:d+.d+.d+.d+评注:提取ip地址时有用匹配特定数字:^[1-9]d*$//匹配正整数^-[1-9]d*$ //匹配负整数^-?[1-9]d*$//匹配整数^[1-9]d*|0$//匹配非负整数(正整数+ 0)^-[1-9]d*|0$//匹配非正整数(负整数+ 0)^[1-9]d*.d*|0.d*[1-9]d*$//匹配正浮点数^-([1-9]d*.d*|0.d*[1-9]d*)$//匹配负浮点数^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$//匹配浮点数^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$//匹配非负浮点数(正浮点数+ 0)^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$//匹配非正浮点数(负浮点数+ 0)评注:处理大量数据时有用,具体应用时注意修正匹配特定字符串:^[A-Za-z]+$//匹配由26个英文字母组成的字符串^[A-Z]+$//匹配由26个英文字母的大写组成的字符串^[a-z]+$//匹配由26个英文字母的小写组成的字符串^[A-Za-z0-9]+$//匹配由数字和26个英文字母组成的字符串^w+$//匹配由数字、26个英文字母或者下划线组成的字符串在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下: 只能输入数字:“^[0-9]*$”只能输入n位的数字:“^d{n}$”只能输入至少n位数字:“^d{n,}$”只能输入m-n位的数字:“^d{m,n}$”只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$”只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$”只能输入非零的正整数:“^+?[1-9][0-9]*$”只能输入非零的负整数:“^-[1-9][0-9]*$”只能输入长度为3的字符:“^.{3}$”只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$”验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
EXCEL⾥常⽤的⼏个正则表达式"^\d+$" //⾮负整数(正整数 + 0)"^[0-9]*[1-9][0-9]*$" //正整数"^((-\d+)|(0+))$" //⾮正整数(负整数 + 0)"^-[0-9]*[1-9][0-9]*$" //负整数"^-?\d+$" //整数"^\d+(\.\d+)?$" //⾮负浮点数(正浮点数 + 0)"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数"^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //⾮正浮点数(负浮点数 + 0)"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数"^(-?\d+)(\.\d+)?$" //浮点数"^[A-Za-z]+$" //由26个英⽂字母组成的字符串"^[A-Z]+$" //由26个英⽂字母的⼤写组成的字符串"[^a-z+$]" '由26个英⽂字母的⼩写组成的字符串" [^A-Za-z0-9]+$" ‘由数字和26个英⽂字母组成的字符串"^\w+$" //由数字、26个英⽂字母或者下划线组成的字符串"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-⽉-⽇/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // ⽉/⽇/年"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //电话号码"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址匹配中⽂字符的正则表达式: [^\u4e00-\u9fa5]匹配双字节字符(包括汉字在内):[^\x00-\xff]匹配空⾏的正则表达式:\n[\s| ]*\r匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/匹配⾸尾空格的正则表达式:(^\s*)|(\s*$)匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*匹配⽹址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$。
js常用的正则表达式前言JavaScript中的正则表达式被广泛用于字符串的匹配和替换,可以让代码更加优雅和高效。
本文将介绍JS中常用的正则表达式及其用法,希望能对初学者有所帮助。
一、基本语法正则表达式由字面值和特殊字符两种类型组成。
字母、数字、空格等都表示字面值,而特殊符号则表示特定含义,例如/d代表数字,/s代表空格等。
正则表达式用斜杠“/”将其包裹起来。
二、常用正则表达式1. 匹配IP地址/^(\d{1,3}\.){3}\d{1,3}$/使用说明: \d表明是数字,{1,3}表明可以是一个到三个数字,\.表示点,^表示字符串开始,$表示字符串结束。
2. 匹配邮箱/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/使用说明: \w表示字母数字下划线,[-+.]表示这些特殊字符中的一个,*表示出现零次或多次。
3. 匹配电话号码/^[1][3,4,5,7,8][0-9]{9}$/使用说明: [1]表示以1开头,[3,4,5,7,8]表示第二个数字只能是这些中的一个,[0-9]{9}表示后面必须跟九个数字。
4. 匹配URL地址/^(http|https):\/\/[a-zA-Z0-9]+[\.a-zA-Z0-9_-]*[a-zA-Z0-9]+(\/\S*)?$/使用说明: (http|https)表示http或https,\/\/表示两个斜杠,[a-zA-Z0-9]表示字母数字任意一个,+表示一个或多个,[\.a-zA-Z0-9_-]*表示出现零次或多次,\/表示斜杠,\S表示任意一个非空白字符。
5. 匹配HTML标签/<\/?[^>]+>/gi使用说明: \?表示出现零次或一次,[^>]表示不是大于号的字符,+表示一个或多个,/i使匹配忽略大小写,/g表示全局匹配。
6. 匹配中文字符/[\u4e00-\u9fa5]/使用说明: [\u4e00-\u9fa5]表示从\u4e00到\u9fa5这个区间的所有字符。
python常⽤的正则表达式⼤全1.正则表达式正则表达式是⽤来匹配与查找字符串的,从⽹上爬取数据⾃然或多或少会⽤到正则表达式,python的正则表达式要先引⼊re模块,正则表达式以r引导,例如:其中**r“\d+”**正则表达式表⽰匹配连续的多个数值,search是re中的函数,从"abc123cd"字符串中搜索连续的数值,得到"123",返回⼀个匹配对象,结果如上.2.字符串"\d"匹配0~9之间的⼀个数值3.字符"+"重复前⾯⼀个匹配字符⼀次或者多次.注意:**r"b\d+"**第⼀个字符要匹配"b",后⾯是连续的多个数字,因此"是b1233",不是"a12".4.字符"*"重复前⾯⼀个匹配字符零次或者多次.“" 与 "+"类似,但有区别,列如:可见 r"ab+“匹配的是"ab”,但是r"ab “匹配的是"a”,因为表⽰"b"可以重复零次,但是”+“却要求"b"重复⼀次以上.5.字符"?"重复前⾯⼀个匹配字符零次或者⼀次.匹配结果"ab”,重复b⼀次.6.字符".“代表任何⼀个字符,但是没有特别声明时不代表字符”\n".结果“.”代表了字符"x".7."|"代表把左右分成两个部分 .结果匹配"ab"或者"ba"都可以.8.特殊字符使⽤反斜杠"“引导,例如”\r"、"\n"、"\t"、"\"分别表⽰回车、换⾏、制表符号与反斜线⾃⼰本⾝.9.字符"\b"表⽰单词结尾,单词结尾包括各种空⽩字符或者字符串结尾.结果匹配"car",因为"car"后⾯是⼀个空格.10."[]中的字符是任选择⼀个,如果字符ASCll码中连续的⼀组,那么可以使⽤"-"字符连接,例如[0-9]表⽰0-9的其中⼀个数字,[A-Z]表⽰A-Z的其中⼀个⼤写字符,[0-9A-z]表⽰0-9的其中⼀个数字或者A-z的其中⼀个⼤写字符.11."^"出现在[]的第⼀个字符位置,就代表取反,例如[ ^ab0-9]表⽰不是a、b,也不是0-9的数字.12."\s"匹配任何空⽩字符,等价"[\r\n 20\t\f\v]"13."\w"匹配包括下划线⼦内的单词字符,等价于"[a-zA-Z0-9]"14."$"字符⽐配字符串的结尾位置匹配结果是最后⼀个"ab",⽽不是第⼀个"ab"15.使⽤括号(…)可以把(…)看出⼀个整体,经常与"+"、"*"、"?"的连续使⽤,对(…)部分进⾏重复.结果匹配"abab","+“对"ab"进⾏了重复16.查找匹配字符串正则表达式re库的search函数使⽤正则表达式对要匹配的字符串进⾏匹配,如果匹配不成功返回None,如果匹配成功返回⼀个匹配对象,匹配对象调⽤start()函数得到匹配字符的开始位置,匹配对象调⽤end()函数得到匹配字符串的结束位置,search虽然只返回匹配第⼀次匹配的结果,但是我们只要连续使⽤search函数就可以找到字符串全部匹配的字符串.匹配找出英⽂句⼦中所有单词我们可以使⽤正则表达式r”[A-Za-z]+\b"匹配单词,它表⽰匹配由⼤⼩写字母组成的连续多个字符,⼀般是⼀个单词,之后"\b"表⽰单词结尾.程序开始匹配到⼀个单词后m.start(),m.end()就是单词的起始位置,s[start:end]为截取的单词,之后程序再次匹配字符串s=s[end:],即字符串的后半段,⼀直到匹配完毕为⽌就找出每个单词.总结到此这篇关于python常⽤正则表达式的⽂章就介绍到这了,更多相关python正则表达式内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
常⽤正则表达式,⼿机号、固话号、⾝份证号等⼿机号码正则表达式验证function checkPhone(){var phone = document.getElementById('phone').value;if(!(/^1[34578]\d{9}$/.test(phone))){alert("⼿机号码有误,请重填");return false;}}或者是function checkPhone(){var phone = document.getElementById('phone').value;if(!(/^1(3|4|5|7|8)\d{9}$/.test(phone))){alert("⼿机号码有误,请重填");return false;}}注:⼩括号就是括号内看成⼀个整体 ,中括号就是匹配括号内的其中⼀个正则⾥⾯的中括号[]只能匹配其中⼀个,如果要匹配特定⼏组字符串的话,那就必须使⽤⼩括号()加或|,我还以为在中括号中也能使⽤或|符号,原来|在中括号⾥⾯也是⼀个字符,并不代表或。
[3457]匹配3或者4或者5或者7,⽽(3457)只匹配3457,若要跟前⾯⼀样可以加或(3|4|5|7)。
[34|57]匹配3或者4或者|或者5或者7.⽽(34|57)能匹配34或者57。
固定电话号码正则表达式:function checkTel(){var tel = document.getElementById('tel').value;if(!/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(tel)){alert('固定电话有误,请重填');return false;}}⾝份证校验//⾝份证正则表达式(15位)isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//⾝份证正则表达式(18位)isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;⾝份证正则合并:(^\d{15}$)|(^\d{17}([0-9]|X)$)提取信息中的⽹络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*提取信息中的图⽚链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}提取信息中的中国邮政编码:[1-9]{1}(\d+){5}提取信息中的中国⾝份证号码:\d{18}|\d{15}提取信息中的整数:\d+提取信息中的浮点数(即⼩数):(-?\d*)\.?\d+提取信息中的任何数字:(-?\d*)(\.\d+)?提取信息中的中⽂字符串:[\u4e00-\u9fa5]*提取信息中的双字节字符串 (汉字):[^\x00-\xff]*使⽤⽅法:test()⽅法在字符串中查找是否存在指定的正则表达式,并返回布尔值,如果存在则返回true,否则返回false。
密码的正则表达式用于验证密码的格式,以下是一些常用的密码正则表达式:
1. 至少8个字符,包括至少1个数字,1个大写字母和1个小写字母:
```regex
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$
```
2. 至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符:
```regex
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()\-
_=+{};:,<.>]).{8,}$
```
3. 至少8个字符,至少包含1个数字、1个大写字母、1个小写字母、1个特殊字符和1个符号:
```regex
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()\-
_=+{};:,<.>]).{8,}$
```
4. 长度在8-16个字符之间,至少包含1个大写字母、1个小写字母和1个数字,其他字符可以是任意字符:
```regex
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/
```
5. 长度在8-16个字符之间,至少包含1个大写字母、1个小写字母、1个数字和1个特殊字符:
```regex
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()\-
_=+{};:,<.>]).{8,16}$/
```
这些正则表达式可以用于验证密码的复杂性和长度,以提高账户的安全性。
请注意,这只是一个示例列表,具体的正则表达式取决于你的具体需求和密码策略。
实⽤正则表达式匹配和替换⼤全正则表达式⾮常有⽤,查找、匹配、处理字符串、替换和转换字符串,输⼊输出等。
⽽且各种语⾔都⽀持,例如.NET正则库,JDK正则包, Perl, JavaScript等各种脚本语⾔都⽀持正则表达式。
下⾯整理⼀些常⽤的正则表达式。
字符描述\将下⼀个字符标记为⼀个特殊字符、或⼀个原义字符、或⼀个向后引⽤、或⼀个⼋进制转义符。
例如,'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是⼀个⾮负整数。
匹配确定的n次。
例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
常用的密码正则表达式中,特殊字符包括@、#、$、%、^、&、*等。
这些特殊字符通常用于增强密码的安全性,因为它们不容易被猜测或破解。
在密码正则表达式中,特殊字符的使用需要根据具体的要求和规则来进行组合和匹配。
例如,有些密码规则可能要求至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且长度必须在8到16个字符之间。
这样的规则可以用正则表达式来表示为:
^[a-z][A-Z][0-9]*([!@#)$
这个正则表达式表示密码必须以一个小写字母开头,接着是一个大写字母、一个数字和一个特殊字符,并且总长度必须在8到16个字符之间。
其中,(?=\S{8,16}$)是一个正向预查,表示在匹配后面的字符之前,必须先匹配8到16个非空白字符。
需要注意的是,不同的系统和应用可能有不同的密码规则和要求,因此具体的正则表达式需要根据实际情况来进行调整和修改。
同时,为了增强密码的安全性,建议定期更换密码并避免使用过于简单或容易猜测的密码。
C语言正则表达式用法正文:C语言正则表达式用法正则表达式是一种强大的模式匹配工具,在编程中被广泛应用于字符串处理、文本分析等各个领域。
C语言作为一种常用的程序设计语言,也提供了正则表达式的支持。
本文将介绍C语言中正则表达式的用法,包括正则表达式的基本语法、常用的函数和示例应用。
一、基本语法1.字符匹配正则表达式由普通字符和特殊字符组成,其中特殊字符具有特殊的含义。
最基本的正则表达式就是用普通字符进行匹配。
例如,正则表达式“hello”可以用于匹配字符串中的“hello”。
2.元字符除了普通字符,正则表达式还包含一些特殊的元字符,用于匹配多个字符或特殊的字符类型。
常见的元字符包括:- '.':匹配任意字符;- '*':匹配0个或多个前面的字符;- '+':匹配1个或多个前面的字符;- '?':匹配0个或1个前面的字符;- '^':匹配行首;- '$':匹配行尾;3.字符类为了匹配某个字符集合中的任意一个字符,可以使用字符类。
字符类用方括号括起来,其中列出了要匹配的字符。
例如,正则表达式“[abc]”可以用于匹配字符串中的任意一个字符“a”、“b”或“c”。
4.转义字符当需要匹配正则表达式中的特殊字符本身时,可以使用反斜杠来进行转义。
例如,正则表达式“\?\.com”可以用于匹配字符串“?.com”。
5.预定义字符类C语言提供了一些预定义的字符类,可以用于匹配一些常见的字符类型,例如字母、数字、空白字符等。
常见的预定义字符类包括: - '\w':匹配任意字母、数字或下划线;- '\d':匹配任意数字;- '\s':匹配任意空白字符;- '\b':匹配单词边界;二、常用函数C语言提供了一系列用于正则表达式操作的函数,可以方便地进行匹配、替换和提取等操作。
java常用正则表达式在Java编程语言中,正则表达式是一种优秀的字符串匹配工具,可以用于搜索、替换和分割字符串。
Java标准库中提供了强大的正则表达式类库,让我们可以轻松地进行复杂的字符串操作。
下面我们将以分步骤的方式介绍Java中常用的正则表达式。
1. 字符组字符组用于匹配一组字符中的任意一个字符。
在正则表达式中,字符组以中括号“[]”表示。
例如,正则表达式“[abc]”可以匹配字符“a”、“b”或“c”。
2. 范围字符组范围字符组用于匹配一组连续的字符。
在正则表达式中,范围字符组以中括号“[]”表示,并在其中用短横线“-”表示范围。
例如,正则表达式“[a-z]”可以匹配任何小写字母;正则表达式“[0-9]”可以匹配任何数字。
3. 非字符组非字符组用于匹配不在一组字符中的任意一个字符。
在正则表达式中,非字符组以中括号“[]”表示,并在其中用排除符号“^”表示非。
例如,正则表达式“[^abc]”可以匹配任何不是字符“a”、“b”或“c”的字符。
4. 点字符点字符用于匹配任意一个字符(除了换行符)。
在正则表达式中,点字符以英文句点“.”表示。
例如,正则表达式“a..b”可以匹配任何以字符“a”开头、以字符“b”结尾、中间有两个任意字符的字符串。
5. 匹配次数匹配次数用于限定一个字符或字符组重复出现的次数。
在正则表达式中,常用的匹配次数包括:- *:匹配0次或多次;- +:匹配1次或多次;- ?:匹配0次或1次;- {n}:匹配n次;- {n,}:匹配至少n次;- {n,m}:匹配n至m次。
例如,正则表达式“ab*c”可以匹配任何以字符“a”开头、以字符“c”结尾、中间有0个或多个字符“b”的字符串。
6. 锚点锚点用于限制匹配的位置。
在正则表达式中,常用的锚点包括:- ^:匹配字符串的开头;- $:匹配字符串的结尾;- \b:匹配单词边界;- \B:匹配非单词边界。
例如,正则表达式“^hello”可以匹配以“hello”开头的字符串。
正则表达式常⽤⽰例import re"""使⽤match⽅法进⾏匹配result = re.match(正则表达式,要匹配的字符串)如果match匹配到数据的话,就可以使⽤group⽅法提取数据注: 若字符串匹配正则表达式,则match⽅法返回匹配对象(Match Object), 否则返回None(不是空字符串)match⽅法是从左到右匹配(因为match的这种特性,所以 ^ 从字符串头开始匹配可以不⽤写),匹配到不⼀样的地⽅,match⽅法就结束!"""""". :匹配任意⼀个字符,\n除外[] :匹配[]中列举的字符\d : 数字,即0~9\D : ⾮数字\s : 空⽩字符,包括空格, \n , \t ,\r, 回车换⾏\S :⾮空⽩字符\w :单词,(可以看成是校验python变量名,实际两者没有任何关系,a~z , A~Z, 0~9 , _ )\W : ⾮单词字符"""In [1]: import reIn [2]: re.match('admin','good.admin')In [3]: re.match('.+','good.admin')Out[3]: <re.Match object; span=(0, 10), match='good.admin'>In [4]: re.match('.','good.admin')Out[4]: <re.Match object; span=(0, 1), match='g'>In [5]: re.match('..','good.admin')Out[5]: <re.Match object; span=(0, 2), match='go'>In [6]: re.match('.*','good.admin')Out[6]: <re.Match object; span=(0, 10), match='good.admin'>In [7]: re.match('\w','good')Out[7]: <re.Match object; span=(0, 1), match='g'>In [8]: re.match('\w','g1')Out[8]: <re.Match object; span=(0, 1), match='g'>In [9]: re.match('\W','g1')# \w与g匹配,但是\W与1不相匹配,所以最终还是不匹配,返回NoneIn [10]: re.match('\w\W','g1')"""边界问题^ : 匹配字符串开头$ : 匹配结尾\b : 匹配单词边界\B :匹配⾮单词边界""""""匹配数量:* : 匹配⼀个字符出现0次或者⽆限多次+ :匹配⼀个字符出现1次或者⽆限多次?:匹配⼀个字符出现0次或者1次{m} : 匹配⼀个字符出现m次{m,}: 匹配⼀个字符⾄少出现m次{m,n} : 匹配⼀个字符出现m到n次""""""边界问题^ : 匹配字符串开头$ : 匹配结尾\b : 匹配单词边界\B :匹配⾮单词边界"""'''⽰例2:匹配⼿机号'''r = re.match('1[35689]\d{9}$','132********')print(r) # <re.Match object; span=(0, 11), match='132********'>r = re.match('1[35689]\d{9}$','132185456789')print(r) #Noner = re.match('1[35689]\d{9}','132185456789') # 没有$符,⽆边界问题print(r) #<re.Match object; span=(0, 11), match='132********'>r = re.match('1[35689]\d{9}','13218545aaaa6789')print(r) #None'''⽰例3:匹配单词边界'''# r:去掉转义; ^:字符串开头, od\b:od是单词边界r = re.match(r'^\w+od\b','good')print(r) # <re.Match object; span=(0, 4), match='good'>r = re.match(r'^\w+od\b','gooder')print(r) #Noner = re.match(r'^\w+\bod\b','good')print(r) #Noner = re.match(r'^\w+\bod\b','jd od')print(r) #None, 因为\b只表⽰单词边界,并不表⽰空格r = re.match(r'^\w+\s\bod\b','jd od') # 这⾥⽤\s去匹配了jd与od之间的空⽩字符print(r) #<re.Match object; span=(0, 5), match='jd od'>r = re.match(r'^\w+od\B','gooder')print(r) #<re.Match object; span=(0, 4), match='good'>r = re.match(r'^\w+od\B','good')print(r) #None"""分组:| :表⽰左右任意⼀个表达式(ab) : 将括号中的字符作为⼀个分组\num :引⽤分组num匹配到的字符串(?P<name>) : 分组起别名(?P=name) : 引⽤别名为name分组匹配到的字符串"""'''⽰例4 匹配0-100之间的数字'''r = re.match(r'[1-9]\d?$|0$|100$','100' )print(r) #<re.Match object; span=(0, 3), match='100'># 改进版r = re.match(r'[1-9]?\d?$|100$','0' )print(r) #<re.Match object; span=(0, 1), match='0'>'''⽰例5:从字符串中抽取特定的字符,如抽取h1标签之间的字符'''s = '<h1>我是中国⼈</h1>'r = re.match(r"<h1>(.*)</h1>",s)print(r.group()) #<h1>我是中国⼈</h1>print(r.group(1)) # 我是中国⼈ , 1 : 表过正则表达式分组第1次出现s = '<h1>打倒⼩⽇本</h1>'r = re.match(r"<h1>(.*)</h1>",s)print(r.group()) #<h1>打倒⼩⽇本</h1>print(r.group(1)) # 打倒⼩⽇本 , 1 : 表过正则表达式分组第1次出现s = '<h1>打倒⼩⽇本我是中国⼈</h1>'r = re.match(r"<h1>(\D*)\s(\D*)</h1>",s)print(r.group()) #<h1>打倒⼩⽇本我是中国⼈</h1>print(r.group(1)) # 打倒⼩⽇本取第1个分组的值print(r.group(2)) # 我是中国⼈取第2个分组的值print(r.groups()) # 将所有的分组结果以⼀个元组的形式打印出来'''⽰例6:匹配<html><h1>zhengqinfeng</h1></html>,且,⾸尾尖括号中的内容相同、内层尖括号中的内容相同'''s = '<html><h1>zhengqinfeng</h1></html>'r = re.match(r'<.+><.+>.+</.+></.+>',s)print(r) #<re.Match object; span=(0, 34), match='<html><h1>zhengqinfeng</h1></html>'># 上⾯的正则貌似完成了需要,实则不然,它并不满⾜"且"后⾯的要求,所以正确的正则如下r= re.match(r'<(.+)><(.+)>.+</\2></\1>',s) # 正则前⾯加r,不会进⾏字符串转义print(r) #<re.Match object; span=(0, 34), match='<html><h1>zhengqinfeng</h1></html>'>s = '<html><h1>zhengqinfeng</h2></html>'r= re.match(r'<(.+)><(.+)>.+</\2></\1>',s) # 正则前⾯加r,不会进⾏字符串转义print(r) #None"""使⽤()时,re会记录()中的内容,我们可以使⽤\num来引⽤在上⾯的⽰例中,第⼀次出现的(.+) re会记录为num =1 ; 第⼆次出现的(.+) re会记录为num =2在后⾯使⽤时,可以直接\1, \2来引⽤值"""由例5,例6两⽰例可知,正则分组⽤途如下:1. 从字符串提取出特定的字符2. 动态引⽤分组内容进⾏匹配'''⽰例7:抽取邮箱账号(163|126|135|qq|gmail) :表⽰匹配其中⼀种\. : 匹配邮箱中的.(com|cn|net) : 表⽰匹配邮箱后缀中的⼀种$ : 表结束,也就是说邮箱是以com,cn,或者是net结尾'''p = r'(\w+)@(163|126|135|qq|gmail)\.(com|cn|net)$'r = re.match(p, '132@')print(r)print(r.groups())print(r.group(1)) # 提取邮箱账号 132'''⽰例8:正则分组取名字'''s = '<html><h1>zhengqinfeng</h1></html>'r = re.match('<(?P<key1>.+)><(?P<key2>.+)>.+</(?P=key2)></(?P=key1)>',s)print(r) # <re.Match object; span=(0, 34), match='<html><h1>zhengqinfeng</h1></html>'> print(r.groups()) # ('html', 'h1')。
只能输⼊正整数的正则表达式及常⽤的正则表达式<input type='text' id='SYS_PAGE_JumpPage' name='SYS_PAGE_JumpPage' size='3' maxlength='5' onkeyup='this.value=this.value.replace(/[^1-9]/D*$/,"")' ondragenter="return false" onpaste="return !clipboardData.getData('text').match(//D/)"" style="ime-mode 1.只能输⼊数字和英⽂的:<input onkeyup="value=value.replace(/[/W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))" ID="Text1" NAME="Text1">2.只能输⼊数字的:<input onkeyup="value=value.replace(/[^/d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))" ID="Text2" NAME="Text2">3.只能输⼊全⾓的:<input onkeyup="value=value.replace(/[^/uFF00-/uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/uFF00-/uFFFF]/g,''))" ID="Text3" NAME="Text3">4.只能输⼊汉字的:<input onkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,''))" ID="Text4" NAME="Text4">5.邮件地址验证:var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$"var re = new RegExp(regu);if (s.search(re) != -1) {return true;} else {window.alert ("请输⼊有效合法的E-mail地址!")return false;}6.⾝份证:"^//d{17}(//d|x)$"7.17种正则表达式"^//d+$" //⾮负整数(正整数 + 0)"^[0-9]*[1-9][0-9]*$" //正整数"^((-//d+)|(0+))$" //⾮正整数(负整数 + 0)"^-[0-9]*[1-9][0-9]*$" //负整数"^-?//d+$" //整数"^//d+(//.//d+)?$" //⾮负浮点数(正浮点数 + 0)"^(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数"^((-//d+(//.//d+)?)|(0+(//.0+)?))$" //⾮正浮点数(负浮点数 + 0)"^(-(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数"^(-?//d+)(//.//d+)?$" //浮点数"^[A-Za-z]+$" //由26个英⽂字母组成的字符串"^[A-Z]+$" //由26个英⽂字母的⼤写组成的字符串"^[a-z]+$" //由26个英⽂字母的⼩写组成的字符串"^[A-Za-z0-9]+$" //由数字和26个英⽂字母组成的字符串"^//w+$" //由数字、26个英⽂字母或者下划线组成的字符串"^[//w-]+(//.[//w-]+)*@[//w-]+(//.[//w-]+)+$" //email地址"^[a-zA-z]+://(//w+(-//w+)*)(//.(//w+(-//w+)*))*(//?//S*)?$" //url=============================================1.取消按钮按下时的虚线框 在input⾥添加属性值 hideFocus 或者 HideFocus=true2.只读⽂本框内容在input⾥添加属性值 readonly3.防⽌退后清空的TEXT⽂档(可把style内容做做为类引⽤) <INPUT style=behavior:url(#default#savehistory); type=text id=oPersistInput>4.ENTER键可以让光标移到下⼀个输⼊框 <input onkeydown="if(event.keyCode==13)event.keyCode=9" >5.只能为中⽂(有闪动) <input onkeyup="value="/value.replace(/[" -~]/g,'')" onkeydown="if(event.keyCode==13)event.keyCode=9">6.只能为数字(有闪动) <input onkeyup="value="/value.replace(/["^/d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))">7.只能为数字(⽆闪动)<input ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9" onKeyPress="if ((event.keyCode<48 || event.keyCode>57)) event.returnValue=false">8.只能输⼊英⽂和数字(有闪动) <input onkeyup="value="/value.replace(/[/W]/g,"'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))">9.屏蔽输⼊法<input type="text" name="url" ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9">10. 只能输⼊数字,⼩数点,减号(-)字符(⽆闪动) <input onKeyPress="if (event.keyCode!=46 && event.keyCode!=45 && (event.keyCode<48 || event.keyCode>57)) event.returnValue=false">11. 只能输⼊两位⼩数,三位⼩数(有闪动) <input maxlength=9 onkeyup="if(value.match(/^/d{3}$/))value="/value.replace(value,parseInt(value/10))" ;value="/value.replace(//./d*/./g,'."')" onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 && event.keyCode!=45 || value.m 总结以上所述是⼩编给⼤家介绍的只能输⼊正整数的代码及常⽤的正则表达式,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
dlt viewer 正则表达式摘要:1.DLT viewer介绍2.常用正则表达式概述3.DLT viewer与正则表达式的结合应用4.实例演示5.总结与建议正文:DLT viewer是一款功能强大的数据日志查看工具,可以帮助用户轻松阅读、分析和过滤日志文件。
正则表达式则是处理文本的一种强大手段,通过编写特定的规则,可以实现对文本的匹配、查找和替换等操作。
本文将介绍如何利用DLT viewer和正则表达式相结合的方式,提高日志分析的效率。
一、DLT viewer介绍DLT viewer是一款免费、开源的日志查看工具,支持多种日志格式,如CSV、XML、JSON等。
它具有以下特点:1.支持多种文件格式:可以查看和分析各种类型的日志文件。
2.强大的搜索功能:通过关键字、正则表达式等方式快速定位感兴趣的内容。
3.灵活的数据显示方式:可以以表格、树形、时间轴等多种方式展示日志数据。
4.便于定制:可以根据需求自定义显示内容、样式和布局。
二、常用正则表达式概述正则表达式是一种强大的文本处理工具,可以帮助我们快速找到符合特定规则的文本。
以下是一些常用的正则表达式语法:1.字段匹配:如`^(日期|时间)$`,表示匹配日志中的日期或时间字段。
2.字符串匹配:如`关键字=(值1|值2|值3)`,表示匹配关键字等于指定值之一的文本。
3.数字匹配:如`数字范围:1000-10000`,表示匹配数字在1000到10000之间的文本。
4.逻辑运算:如`正则表达式1 AND 正则表达式2`,表示同时匹配两个正则表达式的文本。
三、DLT viewer与正则表达式的结合应用在DLT viewer中,我们可以通过编写正则表达式来实现对日志数据的过滤和分析。
以下是一些结合DLT viewer和正则表达式的应用场景:1.筛选特定日志条目:通过设置关键字、时间范围等条件,快速找到感兴趣的日志内容。
2.统计日志数据:利用正则表达式匹配特定字段,如IP地址、用户名等,并统计相关数据。
一.常用符号 字符 实例 说明 备注 \ $ ( ) * + . ? [ \ ^ { | \a\e\f\n\r\t\v “\\”匹配”\”,”\(“匹配”(“,”\t”代表换行。 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。 ^ 匹配输入字符串开始的位置。
定位符 $ 匹配输入字符串结尾的位置。 \< 匹配单词首。 \> 匹配单词尾。
\b “er\b”匹配“never”中的“er”,但不匹配“verb”中的“er”,“\bend\b”仅匹配“end”。 匹配一个字边界,即字与空格间的位置。
\B “er\B”匹配“verb”中的“er”,但不匹配“never”中的“er”。 非字边界匹配。
* zo* 可匹配“z”、“zoo”,* 等效于 {0,}。 零次或多次匹配前面的字符或子表达式。
限定符 + “zo+”与“zo”和“zoo”匹配,但与“z”不匹配,+ 等效于 {1,}。 一次或多次匹配前面的字符或子表达式。
? “do(es)?”匹配“do”或“does”中的“do”,? 等效于 {0,1}。 在字符串“oooo”中,“o+?”只匹配单个“o”,而“o+”匹配所有“o”。 零次或一次匹配前面的字符或子表达式。当此字符紧随任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式是“非贪心”,也即匹配搜索到的、尽可能短的字符串。而默认的“贪心”模式匹配搜索到的、尽可能长的字符串。
{n} “o{2}”与“Bob”中的“o”不匹配,但与“food”中的两个“o”匹配。 n 是非负整数,正好匹配 n 次。
{n,} “o{2,}”不匹配“Bob”中的“o”,而匹配“foooood”中的所有 o。 n 是非负整数。至少匹配 n 次。
{,n} “o{,3}”不匹配“Boooob”中的“o”,而匹配“food”中的所有 o。 n 是非负整数。最多匹配 n 次。
{n,m} “o{1,3}”匹配“fooooood”中的头三个 o。 注意:不能将空格插入逗号和数字之间。 m 和 n 是非负整数,其中 n <= m。匹配至少 n 次,至多 m 次。
常用密码验证的正则
密码验证是我们在编写网站或应用程序时必须考虑的一个重要
问题,为了保证用户的账户安全,我们需要对密码进行安全性验证。
正则表达式是一种常用的验证工具,下面介绍几个常用的密码验证正则表达式。
1. 密码强度验证
密码强度验证通常包括字母、数字和特殊字符的组合,长度要求也不同。
下面是一个密码强度验证的正则表达式:
^(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[W_]).{8,}$ 这个正则表达式要求密码必须包含至少一个数字、一个小写字母、一个大写字母和一个特殊字符,且长度至少为8位。
2. 纯数字密码验证
有些网站或应用程序要求用户设置纯数字密码,下面是一个纯数字密码验证的正则表达式:
^d{6,}$
这个正则表达式要求密码必须由6位或以上的数字组成。
3. 简单密码验证
有些用户设置的密码过于简单,容易被猜测或者破解,我们需要对这些密码进行安全性验证。
下面是一个简单密码验证的正则表达式: ^(?=.*d{4,})[a-zA-Z]{4,}$
这个正则表达式要求密码必须由4个或以上的字母组成,且必须包含至少4个数字。
以上就是常用的密码验证正则表达式,开发者可以根据自己的需求进行选择和适配。
VBA中常用的正则表达式操作与应用方法正则表达式是一种强大的字符串处理工具,它在VBA编程中也有着广泛的应用。
通过使用正则表达式,我们可以对文本进行精确的匹配和处理,从而实现更高效的数据处理和文本分析。
本文将介绍常见的VBA中正则表达式操作与应用方法。
一、什么是正则表达式?正则表达式是一种用于描述字符串特征的表达式。
它由一系列的字符和特殊字符组成,用于定义字符串的搜索规则。
在VBA中,我们可以使用正则表达式库来实现对字符串的模式匹配和提取。
二、VBA中正则表达式的引用与声明在使用正则表达式前,我们需要引用Microsoft VBScript Regular Expressions库。
在VBA编辑器中,点击“工具”->“引用”,勾选“Microsoft VBScript Regular Expressions”即可。
在声明正则表达式对象前,需要使用“Set”关键字进行实例化。
例如:Dim regExp As New RegExp三、常用的正则表达式操作方法1. 匹配字符串通过使用正则表达式的“test”方法,我们可以判断一个字符串是否符合某种模式。
例如,判断一个字符串是否只包含数字:Dim regExp As New RegExpregExp.Pattern = "^[0-9]+$" '匹配一个或多个数字If regExp.Test(str) ThenMsgBox "字符串符合模式"ElseMsgBox "字符串不符合模式"End If2. 提取字符串正则表达式还可以用来提取字符串中符合某种模式的部分。
通过使用正则表达式的“Execute”方法,我们可以获取符合模式的字符串。
Dim regExp As New RegExpregExp.Pattern = "(\d+)"Set matches = regExp.Execute(str)For Each match In matchesMsgBox match.ValueNext上述代码将提取字符串中的所有数字,并逐个弹出消息框显示。
只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^\d{n}$"。
只能输入至少n位的数字:"^\d{n,}$"。
只能输入m~n位的数字:。
"^\d{m,n}$"
只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
只能输入非零的正整数:"^\+?[1-9][0-9]*$"。
只能输入非零的负整数:"^\-[1-9][]0-9"*$。
只能输入长度为3的字符:"^.{3}$"。
只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。
验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
1. 平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: 2. "^\d+$" d+)?$" 0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" d+)?)|(0+(\.0+)?))$" 0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" d+)?$" \w-]+)*@[\w-]+(\.[\w-]+)+$" \w+(-\w+)*))*(\?\S*)?$" +)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" >.*<\/\1>|<(.*) \/>/ 3. 匹配首尾空格的正则表达式:(^\s*)|(\s*$) 4. 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 5. 匹配网址URL的正则表达式:^[a-zA-z]+:\\w+(-\\w+)*))*(\\?\\S*)?$ 6. 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 7. 匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})? 8. 匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$ 9. 10. 11. 元字符及其在正则表达式上下文中的行为: 12. 13. \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
14. 15. ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。 16. 17. $ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。 18. 19. * 匹配前面的子表达式零次或多次。 20. 21. + 匹配前面的子表达式一次或多次。+ 等价于 {1,}。 22. 23. ? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。 24. 25. {n} n 是一个非负整数,匹配确定的n 次。 26. 27. {n,} n 是一个非负整数,至少匹配n 次。 28. 29. {n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。 30. 31. ? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。 32. 33. . 匹配除 "\n" 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式。 34. (pattern) 匹配pattern 并获取这一匹配。 35. 36. (?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。 37. 38. (?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。 39. 40. (?!pattern) 负向预查,与(?=pattern)作用相反 41. 42. x|y 匹配 x 或 y。 43. 44. [xyz] 字符集合。 45. 46. [^xyz] 负值字符集合。 47. 48. [a-z] 字符范围,匹配指定范围内的任意字符。 49. 50. [^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符。 51. 52. \b 匹配一个单词边界,也就是指单词和空格间的位置。 53. 54. \B 匹配非单词边界。 55. 56. \cx 匹配由x指明的控制字符。 57. 58. \d 匹配一个数字字符。等价于 [0-9]。 59. 60. \D 匹配一个非数字字符。等价于 [^0-9]。 61. 62. \f 匹配一个换页符。等价于 \x0c 和 \cL。 63. 64. \n 匹配一个换行符。等价于 \x0a 和 \cJ。 65. 66. \r 匹配一个回车符。等价于 \x0d 和 \cM。 67. 68. \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。 69. 70. \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 71. 72. \t 匹配一个制表符。等价于 \x09 和 \cI。 73. 74. \v 匹配一个垂直制表符。等价于 \x0b 和 \cK。 75. 76. \w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。 77. 78. \W 匹配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。 79. 80. \xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。 81. 82. \num 匹配 num,其中num是一个正整数。对所获取的匹配的引用。 83. 84. \n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。 85. 86. \nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。 87. 88. \nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。 89. 90. \un 匹配 n,其中 n 是一个用四个十六进制数字表示的Unicode字符。 91. 92. 匹配中文字符的正则表达式: [u4e00-u9fa5] 93. 94. 匹配双字节字符(包括汉字在内):[^x00-xff] 95. 96. 匹配空行的正则表达式:n[s| ]*r 97. 98. 匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) />/ 99. 100. 匹配首尾空格的正则表达式:(^s*)|(s*$) 101. 102. 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 103. 104. 匹配网址URL的正则表达式: ./?%&=]*)? 105. 106. 利用正则表达式限制网页表单里的文本框输入内容: 107. 108. 用正则表达式限制只能输入中文:onkeyup="value=(/[^u4E00-u9FA5]/g,'')" onbeforepaste="('text',('text').replace(/[^u4E00-u9FA5]/g,''))" 109. 110. 用正则表达式限制只能输入全角字符: onkeyup="value=(/[^uFF00-uFFFF]/g,'')" onbeforepaste="('text',('text').replace(/[^uFF00-uFFFF]/g,''))" 111. 112. 用正则表达式限制只能输入数字:onkeyup="value=(/[^d]/g,'') "onbeforepaste="('text',('text').replace(/[^d]/g,''))" 113. 114. 用正则表达式限制只能输入数字和英文:onkeyup="value=(/[W]/g,'') "onbeforepaste="('text',('text').replace(/[^d]/g,''))" 115. 116. =========常用正则式 117. 118. 119. 120. 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 121. 122. 匹配双字节字符(包括汉字在内):[^\x00-\xff] 123. 124. 匹配空行的正则表达式:\n[\s| ]*\r 125. 126. 匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 127. 128. 匹配首尾空格的正则表达式:(^\s*)|(\s*$) 129. 130. 匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g \w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 131. 132. 匹配网址URL的正则表达式: ./?%&=]*)? 133. 134. sql语句:^(select|drop|delete|create|update|insert).*$ 135. 136. 1、非负整数:^\d+$ 137. 138. 2、正整数:^[0-9]*[1-9][0-9]*$ 139. 140. 3、非正整数:^((-\d+)|(0+))$ 141. 142. 4、负整数:^-[0-9]*[1-9][0-9]*$ 143. 144. 5、整数:^-?\d+$ 145. 146. 6、非负浮点数:^\d+(\.\d+)?$ 147. 148. 7、正浮点数:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$