大家好,我是讯享网,大家多多关注。
在线正则表达式测试:
概念
正则表达式是字符串运算的逻辑公式,即由预先定义的一些特定字符以及这些特定字符的组合形成一个“正则字符串”。这个“常规字符串”用于表达字符串的过滤逻辑。
给定一个正则表达式和另一个字符串,我们可以达到以下目的:
1.给定的字符串是否符合正则表达式的过滤逻辑(称为“匹配”);
2.我们可以通过正则表达式从字符串中得到我们想要的特定部分。
正则表达式的特征是:
1.非常灵活,逻辑和功能;
2.字符串的复杂控制可以用非常简单的方式快速实现。
1正则表达式的基本语法
两个特殊符号和$。它们的功能是分别指示字符串的开始和结束。例子如下:
^The:表示所有以”The”开始的字符串(”There”,”The cat”等);of despair$:表示所以以”of despair”结尾的字符串;^abc$:表示开始和结尾都是”abc”的字符串——呵呵,只有”abc”自己了;notice:表示任何包含”notice”的字符串。
像上一个例子一样,如果你没有使用两个特殊字符,你就表明要搜索的字符串在被搜索字符串的任何部分——你没有把它放在某个顶端。
其他*、+和?这三个符号表示一个字符或一系列字符重复的次数。它们分别表示“没有或更多”、“一次或更多”和“没有或一次”。这里有几个例子:
ab*:表示一个字符串有一个a后面跟着零个或若干个b。(”a”, “ab”, “abbb”,……);ab+:表示一个字符串有一个a后面跟着至少一个b或者更多;ab?:表示一个字符串有一个a后面跟着零个或者一个b;a?b+$:表示在字符串的末尾有零个或一个a跟着一个或几个b。
您还可以使用用大括号括起来的范围来指示重复次数的范围。
ab{2}:表示一个字符串有一个a跟着2个b(”abb”);ab{2,}:表示一个字符串有一个a跟着至少2个b;ab{3,5}:表示一个字符串有一个a跟着3到5个b。
请注意,您必须指定范围的下限(例如:{0,2}而不是{,2})。还有,你可能注意到了,*、+和?相当于{0,},{1,}和{0,1}。
还有一个|,表示OR运算:
hi|hello:表示一个字符串里有”hi”或者”hello”;(b|cd)ef:表示”bef”或”cdef”;(a|b)*c:表示一串”a”“b”混合的字符串后面跟一个”c”;
。可以替换任何字符:
a.[0-9]:表示一个字符串有一个”a”后面跟着一个任意字符和一个数字;^.{3}$:表示有任意三个字符的字符串(长度为3个字符);
方括号表示允许某些字符出现在字符串中的特定位置:
[ab]:表示一个字符串有一个”a”或”b”(相当于a|b);[a-d]:表示一个字符串包含小写的’a’到’d’中的一个(相当于a|b|c|d或者[abcd]);^[a-zA-Z]:表示一个以字母开头的字符串;[0-9]%:表示一个百分号前有一位的数字;,[a-zA-Z0-9]$:表示一个字符串以一个逗号后面跟着一个字母或数字结束。
也可以用方括号中的a表示不想出现的字符,要放在方括号的第一位。
(例如:% [a-za-z]%表示百分之二的符号中不应该有字母)。
为了逐字表达,你必须把它写进去。$ () | *+?{\这些字符的前面是转移字符\。
请注意,在方括号中,不需要转义字符。
首先,检查数字的表达式
1: [0-9] * $
两位数字:\ d {n} $
3位数,至少有n位数:\ d {n,} $
4-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 * $ or ([1-9] [0-9] *) {1,3} $ or \+[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 * $ or (([0-9]+\。[0-9] * [1-9] [0-9]
18个负浮点数:-([1-9] \ d * \。\ d * | 0 \。\ d * [1-9] \ d *) $或(-([0-9]+\。[0-9] * [1-]
19浮点数:(-?\d+)(\。\d+)?$或者-?([1-9]\d*\。\d*|0\。\d*[1-9]\d*|0?\.0+|0)$
第二,检查人物表情
1: [\ u4e00-\ u9fa5] {0,} $
英语和数字:[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} $
中文、英文和数字包括下划线:[\ u4e00-\ u9fa5a-za-z0-9 _]+$
10个中文、英文数字,但不包括下划线和其他符号:[\ u4e00-\ u9fa5a-za-z0-9]+$或[\ u4e00-\ u9fa5a-za-z0-9] {2,20} $
1您可以输入% & ‘,;=?诸如$ \ “:[%& ‘,;=?$\x22]+
12禁止输入包含~: [~ \ x22]+的字符
第三,特殊需求的表达
1邮箱地址:\ w+([-+] \ w+) * @ \ w+([-。] \ w+) * \。\ w+([-。] \ w+) * $
2域名:[A-ZA-Z0-9] [-A-ZA-Z0-9] {0,62} (/。[阿扎-Z0-9][-阿扎-Z0-9] {0,62})+/。?
3 InternetURL: [a-za-z]+://[\ s] *或http://([\ w-]+\。)+[\ w-]+(/[\ w-。/?% & amp=]*)?$
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])
5电话号码:(“XXX-XXXXXX”、“XXXXXX-XXXXXX”、“XXX-XXXXXX”、“XXX-XXXXXX”、“XXXXXX”、“XXXXXX”):(\(d { 3,4}-) | \ d {3.4}-)?\d{7,8}$
6国内电话号码:(0511-4405222,021-8788822):\ d { 3 }-\ d { 8 } | \ d { 4 }-\ d { 7 }
7身份证号码(15位数字,18位数字):\ d {15} | \ d {18} $
8短身份证号(数字,以字母X结尾):([0-9]) {7,18} (x | x)?$ or \ 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}
3一年中的12个月(01 ~ 09和1 ~ 12): (0?[1-9]|1[0-2])$
4一个月31天(01 ~ 09和1 ~ 31): ((0?[1-9])|((1|2)[0-9])|30|31)$
15元的输入格式:
6 1.我们可以接受的货币形式有四种:“10000.00”和“10000.00”,以及不带“点数”的“10000”和“10000”:[1-9][0-9]* $
12.这意味着任何不是以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]+)?$
0 5.必须注意,小数点后至少要有1位数字,所以“10”。未通过,但通过了“10”和“10.2”:[0-9]+(。[0-9] {2})?$
1 6.这样,我们规定小数点后必须有两位数。如果你觉得太苛刻,可以这样:[0-9]+(。[0-9] {1,2})?$
27.这允许用户只写一个十进制数。接下来,我们该考虑数字中的逗号了。我们可以这样做:[0-9] {1,3}(,[0-9] {3}) *(。[0-9] {1,2})?$
3 28.1到3个数字,后跟任意逗号+3个数字。逗号变成可选的而不是必需的:([0-9]+| [0-9] {1,3}(,[0-9] {3}) *)(。[0-9] {1,2}) $
24备注:这是最终结果。别忘了如果你觉得空字符串可以接受的话“+”可以换成“*”(奇怪,为什么?最后,在使用该函数时,不要忘记删除反斜杠。常见的错误在这里。
2XML文件:([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标记的正则表达式:
30个正则表达式空:s * | \ s * $ or(\ s *)|(\ s * $)(可以用来删除第一行末尾的空白字符(包括空单元格、制表符、制表符)
31腾讯QQ号:[1-9][0-9]{4,}(腾讯QQ号10000起)
3中国邮政编码:[1-9]\d{5}(?!(d)(中国的邮政编码是6位数字)
3IP地址:\d+\。\d+\。\d+\。\d+(提取IP地址时有用)
34验证IP-v4地址\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
35验证IP-v6地址
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\。){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://51itzy.com/44446.html