常用正则表达式
- 格式: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”开头的字符串。
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]*))$