常用正则表达式
常用正则表达式语法大全
正则表达式是一种用于匹配和处理文本的强大工具,可以在很多编程语言和文本编辑器中使用。以下是一些常用的正则表达式语法:
1.字符匹配:
–.: 匹配任意单个字符,不包括换行符。
–\w: 匹配任意字母、数字或下划线。
–\d: 匹配任意数字。
–\s: 匹配任意空白字符,包括空格、制表符、换行等。
–[...]: 匹配方括号内的任意字符。例如,[aeiou]匹配任意一个元音字母。
–[^...]: 匹配除了方括号内字符之外的任意字符。例如,[^aeiou]匹配任意一个非元音字母。
2.重复匹配:
–*: 匹配前一个字符0次或多次。
–+: 匹配前一个字符1次或多次。
–: 匹配前一个字符0次或1次。
–{n}: 匹配前一个字符恰好n次。
–{n,}: 匹配前一个字符至少n次。
–{n,m}: 匹配前一个字符至少n次,最多m次。
3.边界匹配:
–^: 匹配字符串的开始位置。
–$: 匹配字符串的结束位置。
–\b: 匹配单词边界,即单词前后的位置。
–\B: 匹配非单词边界的位置。
4.分组和捕获:
–(): 将括号内的表达式视为一个分组。
–(?:): 类似于普通分组,但不进行捕获。
–\n: 反向引用,引用第n个分组的内容。
5.特殊字符转义:
–\: 转义字符,用于匹配特殊字符本身。
6.修饰符:
–i: 忽略大小写。
–g: 全局匹配,不仅匹配第一个结果。
–m: 多行匹配,使^和$匹配每一行的开始和结束。
这里列举了一些常用的正则表达式语法,但实际使用中,还有更多复杂的语法和特性,可以根据具体需求查阅更详细的正则表达式文档和教程。不同编程语言和文本编辑器对正则表达式的支持也有所不同,所以在实际应用中需要根据具体的环境进行调整。
常用正则表达式大全!(例如:匹配中文、匹配html)
常⽤正则表达式⼤全!(例如:匹配中⽂、匹配html)⼀、常见正则表达式
匹配中⽂字符的正则表达式: [u4e00-u9fa5]
评注:匹配中⽂还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以⽤来计算字符串的长度(⼀个双字节字符长度计2,ASCII字符计1)
匹配空⽩⾏的正则表达式:ns*r
评注:可以⽤来删除空⽩⾏
匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? />
评注:⽹上流传的版本太糟糕,上⾯这个也仅仅能匹配部分,对于复杂的嵌套标记依旧⽆能为⼒
匹配⾸尾空⽩字符的正则表达式:^s*|s*$
评注:可以⽤来删除⾏⾸⾏尾的空⽩字符(包括空格、制表符、换页符等等),⾮常有⽤的表达式
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
评注:表单验证时很实⽤
匹配⽹址URL的正则表达式:^(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?$
评注:⽹上流传的版本功能很有限,上⾯这个基本可以满⾜需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实⽤
匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
常用的正则表达式代码汇总
常⽤的正则表达式代码汇总
常⽤的正则表达式代码汇总
常⽤的正则表达式代码汇总:
1。^\d+$ //匹配⾮负整数(正整数 + 0)
2。^[0-9]*[1-9][0-9]*$ //匹配正整数
3。^((-\d+)|(0+))$ //匹配⾮正整数(负整数 + 0)
4。^-[0-9]*[1-9][0-9]*$ //匹配负整数
5。^-?\d+$ //匹配整数
6。^\d+(\.\d+)?$ //匹配⾮负浮点数(正浮点数 + 0)
7。^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //匹配正浮点数
8。^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配⾮正浮点数(负浮点数 + 0)
9。^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配负浮点数
10。^(-?\d+)(\.\d+)?$ //匹配浮点数
11。^[A-Za-z]+$ //匹配由26个英⽂字母组成的字符串
12。^[A-Z]+$ //匹配由26个英⽂字母的⼤写组成的字符串
13。^[a-z]+$ //匹配由26个英⽂字母的⼩写组成的字符串
14。^[A-Za-z0-9]+$ //匹配由数字和26个英⽂字母组成的字符串
15。^\w+$ //匹配由数字、26个英⽂字母或者下划线组成的字符串
16。^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址
正则表达式例子大全
正则表达式例子大全
一、元字符
1. .:除换行外的任意单字符
2. \w:数字、字符
3. \d:十进制数字
4. \W:非数字、字符
5. \D:非十进制数字
6. \s:空白符(不可见字符)
7. \S:非空白符(可见字符)
8. \n:换行符
9. \r:回车符
10. \t:Tab空格
二、字符集合
1. [abc]:括号中任意单字符
2. [^abc]:除括号中字符外任意字符
3. [a-z]:括号中a-z英文字母
4. [A-Z]:括号中A-Z英文字母
5. [0-9]:括号中0-9数字
三、字符数量
1. *:0次或者多次
2. +:1次或者多次
3. ?:0次或者1次
4. {n}:n次
5. {m,n}:m次到n次
四、限定符
1. \b:单个单词边界
2. ^:字符串起始处
3. $:字符串结束处
4. |:或者
五、分组
1. (exp):括号内作为一个整体进行分组
2. (?:exp):
六、反义
1. \b:单词边界
2. \B:非单词边界
3. \w:数字、字母
4. \W:非数字、字母
5. \d:十进制数字
6. \D:非十进制数字
7. \s:空白符
8. \S:非空白符
正则表达式是一种非常强大的文本检查和替换工具,它的出现给我们
带来了更为可靠、灵活的文本处理方式,简化了字符串分析和文本处
理相关任务。它还提供了强大的文本搜索能力,主要用于文本模式匹配,如:搜索、替换、拆分等,在日常的文本处理中非常有效。它的
工作原理是通过使用特殊的字符串模式,来匹配文本中的某些字符模式,如果匹配到就返回True,如果没有匹配到就返回False。其中,元
regexp 常用表达式
regexp 常用表达式
正则表达式(RegExp,或称为正规表达式)是用于匹配字符串模式的强大工具。以下是一些在正则表达式中常用的模式:
1. 匹配数字:
•匹配一个或多个数字:\d+
•匹配零或一个数字:\d?
•匹配一个数字范围:\d{2,4}(匹配2到4个数字)
2. 匹配字母:
•匹配一个或多个字母:[a-zA-Z]+
•匹配零或一个字母:[a-zA-Z]?
3. 匹配单词字符:
•匹配一个或多个单词字符(字母、数字、下划线):\w+
4. 匹配空格:
•匹配一个或多个空格:\s+
5. 匹配开头和结尾:
•匹配字符串开头:^
•匹配字符串结尾:$
6. 匹配任意字符:
•匹配除换行符外的任意字符:.
7. 转义特殊字符:
•如果要匹配特殊字符本身,需要使用反斜杠 \ 进行转义。
8. 匹配字符集:
•匹配字符集中的任何一个字符:[aeiou](匹配元音字母)
•匹配字符集中的任何一个字符的补集:[^0-9](匹配非数字字符)
9. 限定符:
•匹配零次或多次:*
•匹配一次或多次:+
•匹配零次或一次:?
•匹配固定次数:{n}、{n,}、{n,m}
10. 分组和引用:
•使用括号进行分组:(pattern)
•引用分组中匹配的文本:\1、\2 等
11. 或操作:
•匹配 A 或 B:A|B
这只是正则表达式的基础,正则表达式还有许多高级特性和用法。根据具体需求,你可能需要深入学习更多关于正则表达式的内容。
正则表达式150种表达方式
正则表达式150种表达方式
1、删除所有数字。只要查找:\d就OK。为了不留空行:替换处:\d
2、删除所有英文字母。只要查找:\a就OK。为了不留空行:替换处:\d
3、删除除换行符以外的所有。只要查找:. 为了不留空行:替换处:\d
4、既删除英文字母又删除数字。只要查找:\w。为了不留空行:替换处:\d
5、删除数字加字母加等于(如:3a=或3zz=)只要查找:\d+\a+\=。为了不留空行:替换处:\d
6、删除换行。只要查找:$。替换处:\d(还原查找:\a+=\f。替换:\0\n)。如在换行后加一空格,查找:(\a)$。替换:\0 \d。
7、删除空行只要查找:^$。为了不留空行:替换处:\d
8、删除首尾空格。只要查找:^\s*|\s*$就OK
9、删除行前数字及顿号。只要查找:\d+、替换为空
10、删除末尾标点符号。只要查找:\P+$|\P+\s+$,“|”前面是没有空格的,“|”后面有空格,P后的加是为了……而用的。
11、删除末尾空格。只要查找:\s+$。替换为空。
12、删除第一个字如:“的我们”中的“的”只要查找:^\的。
13、删除第几个字。查找:查找:^().(.+)。替换:\1\2。去掉前面的拼音:查找:^\a+替换为空。第一个括号里可加“.”且可变。
14、删含的。查:.*的.*替:\d。的头查:.*=的.*替:\d。的尾查:\a.*\c.*的$替:\d(留它不匹配)●删非的行查:^[^的]+$替:\d
15、删除几码以上的码查:^(...)...替:\1。删第几位码。查:^(...).(.+)替:\1\2(变成\1,\2则其位则改成,了)首括号的.可变。
hae 常用正则
hae 常用正则
常用正则表达式:
1. 匹配中文字符:[\u4e00-\u9fa5]
2. 匹配非中文字符:[^\u4e00-\u9fa5]
3. 匹配手机号码:^1([38]\d|5[0-35-9]|7[3678])\d{8}$
4. 匹配身份证号码:(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)
5. 匹配邮箱地址:[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+
6. 匹配URL地址:^(http|https|ftp)://[^\s]+
7. 匹配IP地址:((25[0-5]|2[0-
4]\d|[01]\d\d|\d\d|\d)\.){3}(25[0-5]|2[0-
4]\d|[01]\d\d|\d\d|\d)
8. 匹配HTML标签:<(\S*?)[^>]*>.*?\1>|<.*? />
9. 匹配日期(年月日):\d{4}-\d{1,2}-\d{1,2}
10. 匹配时间(时分秒):
(\d{1,2})(?::(\d{1,2}))?(?::(\d{1,2}))?
以上是一些常用的正则表达式,用于不同的需求场景。请注意,在使用正则表达式时,应该根据具体的需求进行修改和调整。
js常用的正则表达式
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表示任意一个非空
正则表达式实用语法大全
正则表达式实用语法大全
正则表达式是一种强大的文本匹配和处理工具,它可以用来在字符串中查找、替换和提取特定的模式。下面是一些常用的正则表达式实用语法:
1. 字符匹配。
\d: 匹配数字。
\w: 匹配字母、数字、下划线。
\s: 匹配空白字符。
. : 匹配任意字符。
2. 重复匹配。
: 匹配前面的元素零次或多次。
+ : 匹配前面的元素一次或多次。
: 匹配前面的元素零次或一次。
{n} : 匹配前面的元素恰好n次。
{n,} : 匹配前面的元素至少n次。
{n,m} : 匹配前面的元素至少n次,至多m次。
3. 边界匹配。
^ : 匹配字符串的开头。
$ : 匹配字符串的结尾。
\b : 匹配单词的边界。
4. 分支条件。
| : 匹配多个表达式中的一个。
5. 分组。
( ) : 将表达式分组。
(?: ) : 只匹配不捕获分组。
(? ) : 命名捕获分组。
6. 贪婪与非贪婪。
: 匹配前面的元素零次或多次,尽量少匹配。
+? : 匹配前面的元素一次或多次,尽量少匹配。
: 匹配前面的元素零次或一次,尽量少匹配。
{n,m}? : 匹配前面的元素至少n次,至多m次,尽量少匹配。
7. 反义。
\D : 匹配非数字。
\W : 匹配非字母、数字、下划线。
\S : 匹配非空白字符。
8. 转义字符。
\ : 转义特殊字符。
以上是一些常用的正则表达式实用语法,通过灵活运用这些语法,可以实现对文本的高效处理和匹配。希望这些内容对你有所帮助。
常用的正则表达式
常⽤的正则表达式
1 - 31 正整数验证
^((0?[1-9])|((1|2)[0-9])|30|31)$
⾝份证号码验证
const reg =/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
⼿机号码验证
const reg =/^1[3|4|5|7|8][0-9]{9}$/;
⼤于0的数
const reg =/^$|^\s*[1-9]\d*\s*$/
⼤于0的正整数
const reg =/^\+?[1-9]\d*$/;
邮箱验证
const reg =/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
密码验证
const reg =^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
字符串只能是中⽂
const reg =^[\\u4e00-\\u9fa5]{0,}$
由数字,26个英⽂字母或下划线组成的字符串
const reg =^\\w+$
校验⽇期
const reg =^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]| [13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$
常用的正则表达式
1. 平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用:2. "^\d+$" //非负整数(正整数 + 0)3. "^[0-9]*[1-9][0-9]*$" //正整数4. "^((-\d+)|(0+))$" //非正整数(负整数 + 0)5. "^-[0-9]*[1-9][0-9]*$" //负整数6. "^-?\d+$" //整数7. "^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0)8. "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数9. "^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正浮点数(负浮点数 + 0)10. "^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数11. "^(-?\d+)(\.\d+)?$" //浮点数12. "^[A-Za-z]+$" //由26个英文字母组成的字符串13. "^[A-Z]+$" //由26个英文字母的大写组成的字符串14. "^[a-z]+$" //由26个英文字母的小写组成的字符串15. "^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串16. "^\w+$" //由数字、26个英文字母或者下划线组成的字符串17. "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址18. "^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url19. /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日20. /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年21. "^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil22. /^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/ //电话号码23. "^(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地址24. 25. 匹配中文字符的正则表达式: [\u4e00-\u9fa5]26. 匹配双字节字符(包括汉字在内):[^\x00-\xff]27. 匹配空行的正则表达式:\n[\s| ]*\r28. 匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/29. 匹配首尾空格的正则表达式:(^\s*)|(\s*$)30. 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*31. 匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$32. 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$33. 匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?34. 匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$35. 36. 37. 元字符及其在正则表达式上下文中的行为:38. 39. \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。40. 41. ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后
20个常用的正则表达式 单字母
正则表达式(Regular Expression)是一种用于匹配字符串的强大工具。它通过使用特定的符号和字符来描述和匹配一系列字符串,能够
满足我们在处理文本时的各种需求。在这篇文章中,我们将深入探讨
20个常用的单字母正则表达式,并通过实例来展示它们的使用方法。
1. \b
在正则表达式中,\b表示单词的边界。它可以用来匹配单词的开头或
结尾,用于查找特定单词而不是单词的一部分。
2. \d
\d表示任意一个数字字符。它可以用来匹配任何数字,例如\d+可以
匹配一个或多个数字字符。
3. \w
\w表示任意一个字母、数字或下划线字符。它可以用来匹配单词字符,例如\w+可以匹配一个或多个单词字符。
4. \s
\s表示任意一个空白字符,包括空格、制表符、换行符等。它可以用
来匹配空白字符,例如\s+可以匹配一个或多个空白字符。
5. \.
\.表示匹配任意一个字符,包括标点符号和空格等。它可以用来匹配任
意字符,例如\.可以匹配任意一个字符。
6. \A
\A表示匹配字符串的开始。它可以用来确保匹配发生在字符串的开头。
7. \Z
\Z表示匹配字符串的结束。它可以用来确保匹配发生在字符串的结尾。
8. \b
\b表示单词的边界。它可以用来匹配单词的开头或结尾,用于查找特
定单词而不是单词的一部分。
9. \D
\D表示任意一个非数字字符。它可以用来匹配任何非数字字符。
10. \W
\W表示任意一个非单词字符。它可以用来匹配任何非单词字符。
11. \S
\S表示任意一个非空白字符。它可以用来匹配任何非空白字符。
12. \[
\[
表示匹配方括号。它可以用来匹配包含在方括号内的字符。
正则表达式实用语法大全
正则表达式基本符号:
^ 表示匹配字符串的开始位置 (例外用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)
$ 表示匹配字符串的结束位置
* 表示匹配零次到多次
+ 表示匹配一次到多次 (至少有一次)
表示匹配零次或一次
. 表示匹配单个字符
| 表示为或者,两项中取一项
( ) 小括号表示匹配括号中全部字符
[ ] 中括号表示匹配括号中一个字符范围描述如[0-9 a-z A-Z]
{ } 大括号用于限定匹配次数如 {n}表示匹配n个字符 {n,}表示至少匹配n个字符{n,m}表示至少n,最多m
\ 转义字符如上基本符号匹配都需要转义字符如 \* 表示匹配*号
\w 表示英文字母和数字 \W 非字母和数字
\d 表示数字 \D 非数字
常用的正则表达式
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
sql语句:^(select|drop|delete|create|update|insert).*$
正则表达式语法大全
1 [正则表达式]文本框输入内容控制2 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$3 只能输入数字:"^[0-9]*$"。4 只能输入n位的数字:"^\d{n}$"。5 只能输入至少n位的数字:"^\d{n,}$"。6 只能输入m~n位的数字:。"^\d{m,n}$"7 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。8 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。9 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。10 只能输入非零的正整数:"^\+?[1-9][0-9]*$"。11 只能输入非零的负整数:"^\-[1-9][]0-9"*$。12 只能输入长度为3的字符:"^.{3}$"。13 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。14 只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。15 只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。16 只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。17 只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。18 验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。19 验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。20 只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"21 验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。22 验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。23 验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。24 验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。25 验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。26 验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。27 匹配中文字符的正则表达式: [\u4e00-\u9fa5]28 匹配双字节字符(包括汉字在内):[^\x00-\xff]29 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)30 String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}31 匹配空行的正则表达式:\n[\s| ]*\r32 匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>33 匹配首尾空格的正则表达式:(^\s*)|(\s*$)34 应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:35 String.prototype.trim = function()36 {37 return this.replace(/(^\s*)|(\s*$)/g, "");38 }39 利用正则表达式分解和转换IP地址:40 下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:41 function IP2V(ip)42 {43 re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式44 if(re.test(ip))45 {46 return RegExp.$1*Math.pow(255,3))+RegE
最全的常用正则表达式大全
最全的常⽤正则表达式⼤全
⼀、校验数字的表达式
1. 数字:^[0-9]*$
2. n位的数字:^\d{n}$
3. ⾄少n位的数字:^\d{n,}$
4. m-n位的数字:^\d{m,n}$
5. 零和⾮零开头的数字:^(0|[1-9][0-9]*)$
6. ⾮零开头的最多带两位⼩数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
7. 带1-2位⼩数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
8. 正数、负数、和⼩数:^(\-|\+)?\d+(\.\d+)?$
9. 有两位⼩数的正实数:^[0-9]+(.[0-9]{2})?$
10. 有1~3位⼩数的正实数:^[0-9]+(.[0-9]{1,3})?$
11. ⾮零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
12. ⾮零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
13. ⾮负整数:^\d+$ 或 ^[1-9]\d*|0$
14. ⾮正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
15. ⾮负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
16. ⾮正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
17. 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
正则表达式大全
正则表达式大全
正则表达式(Regular Expression)又称正规表示式,是一种特定的文字模式,使用它可以对一个文本进行搜索、匹配等操作方便的文本处理技术。以其简洁的语法来简化复杂的文本处理任务,广泛应用在软件开发中。下面将介绍正则表达式的基本语法和常见用法:
一、正则表达式基本语法
1、字符类:正则表达式中可以指定匹配某种特殊字符的模式,字符类内的任意一个字符都会匹配,常用的字符类有:
(1)[a-zA-Z0-9] 表示任意英文字母和数字
(2)[^!] 表示任意非“!”字符
(3)[\u4E00-\u9FFF] 代表任意汉字
2、重复:可以指定匹配的重复次数,以满足不同的匹配需求,常见的有:
(1)* 表示重复零次或更多次
(2)+ 表示重复一次或更多次
(3)? 表示重复零次或一次
(4){n} 表示重复n次
(5){n,m} 表示重复n到m次
3、分组:分组化模式,利用括号定义一组子模式,使用|符号分割多个分组。
4、边界:正则表达式中可以加上边界,表示模式必须出现在文字的开头或结尾,常见的有:
(1)^ 表示开头
(2)$ 表示结尾
(3)\b 表示单词边界
二、正则表达式常用用法
1、验证:使用正则表达式和字符类可以大大减少编程复杂度,方便快捷地验证用
户输入的合法性,常见的有:
(1)验证数字:^[0-9]*$
(2)验证字母数字:^[A-Za-z0-9]+$
(3)验证邮件:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
2、匹配:可以使用正则表达式搜索符合条件的文本片段,或者替换符合条件的文本片段,常见的有:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
^ 匹配输入字符串的开始位置。如果设置了 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。
{n,} n 是一个非负整数。至少匹配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' 在内的任何字符,请使用象 '[.\n]' 的模式。
(pattern) 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 '\(' 或 '\)'。
(?:pattern) 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, '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 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。
\nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。
\un 匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, \u00A9 匹配版权符号 (?)。
一、校验数字的表达式
1 数字:^[0-9]*$
2 n位的数字:^\d{n}$
3 至少n位的数字:^\d{n,}$
4 m-n位的数字:^\d{m,n}$
5 零和非零开头的数字:^(0|[1-9][0-9]*)$
6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
10 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
11 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
13 非负整数:^\d+$ 或 ^[1-9]\d*|0$
14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
17 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
18 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
19 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
二、校验字符的表达式
1 汉字:^[\u4e00-\u9fa5]{0,}$
2 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
3 长度为3-20的所有字符:^.{3,20}$
4 由26个英文字母组成的字符串:^[A-Za-z]+$
5 由26个大写英文字母组成的字符串:^[A-Z]+$
6 由26个小写英文字母组成的字符串:^[a-z]+$
7 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
8 由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$
9 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
10 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
11 可以输入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+
12 禁止输入含有~的字符:[^~\x22]+
三、特殊需求表达式
1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
4 手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
5 电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(
\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
6 国内电话号码(0511-*******、021-********):\d{3}-\d{8}|\d{4}-\d{7}
7 身份证号:
15或18位身份证:^\d{15}|\d{18}$
15位身份证:^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$
18位身份证:^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$
8 短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
9 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
10 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$
11 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
12 日期格式:^\d{4}-\d{1,2}-\d{1,2}
13 一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$
14 一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
15 钱的输入格式:
16 1.有四种钱的表示形式我们可以接受:"10000.00" 和 "10,000.00", 和没有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$
17 2.这表示任意一个不以0开头的数字,但是,这也意味着一个字符"0"不通过,所以我们采用下面的形式:^(0|[1-9][0-9]*)$
18 3.一个0或者一个不以0开头的数字.我们还可以允许开头有一个负号:^(0|-?[1-9][0-9]*)$
19 4.这表示一个0或者一个可能为负的开头不为0的数字.让用户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下面我们要加的是说明可能的小数部分:^[0-9]+(.[0-9]+)?$
20 5.必须说明的是,小数点后面至少应该有1位数,所以"10."是不通过的,但是 "10" 和 "10.2" 是通过的:^[0-9]+(.[0-9]{2})?$
21 6.这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样:^[0-9]+(.[0-9]{1,2})?$
22 7.这样就允许用户只写一位小数.下面我们该考虑数字中的逗号了,我们可以这样:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
23 8.1到3个数字,后面跟着任意个 逗号+3个数字,逗号成为可选,而不是必须:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
24 备注:这就是最终结果了,别忘了"+"可以用"*"替代如果你觉得空字符串也可以接受的话(奇怪,为什么?)最后,别忘了在用函数时去掉去掉那个反斜杠,一般的错误都在这里
25 xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
26 中文字符的正则表达式:[\u4e00-\u9fa5]
27 双字节字符:[^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))
28 空白行的正则表达式:\n\s*\r (可以用来删除空白行)
29 HTML标记的正则表达式:<(\S*?)[^>]*>.*?\1>|<.*? /> (网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力)
30
首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式)
31 腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)
32 中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)
33 IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有用)