常用正则表达式
常用正则表达式 正则表达式用于字符串处理、表单验证等场合。以备不时之需。 匹配中文字符的正则表达式: [u4e00-u9fa5] 匹配双字节字符(包括汉字在内):[^x00-xff] 匹配空白行的正则表达式: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} 匹配腾讯QQ号:[1-9][0-9]{4,} 匹配中国邮政编码:[1-9]d{5}(?!d) 匹配身份证:d{15}|d{18} 匹配ip地址:d+.d+.d+.d+ 匹配特定数字: 匹配特定字符串: ======================================================================================== 验证数字:^[0-9]*$
==================================================================================== 字符串处理
表达式: ^d{3}-d{2}-d{4}$
描述:此正则表达式将会匹配设备号码(美国)(SSN) ,格式为NNN-NN-NNNN.匹配举例:333-22-4444 | 123-45-6789不匹配举例: 123456789 | SSN
表达式: ^[a-zA-Z]$
描述: 匹配任何单一的大写或小写字母。匹配举例: a | B | c不匹配举例: 0 | & | AbC
表达式:(w+)s+1
描述: 此表达式使用反向引用来寻找以空格分开的两个单词中出现一行中出现两次的单词。匹配像 'mandate dated'这样的。匹配举例:hubba hubba | mandate dated | an annual不匹配举例: may day | gogo | 1212
表达式: ^(d{4}[- ]){3}d{4}|d{16}$
描述:信用卡卡号校验。检查16位四组格式的,以空个或-分开的卡号,或者连在一起的。.
匹配举例:1234-1234-1234-1234 | 1234 1234 1234 1234 | 1234123412341234
不匹配举例: Visa | 1234 | 123-1234-12345
表达式:^((4d{3})|(5[1-5]d{2})|(6011))-?d{4}-?d{4}-?d{4}|3[4,7]d{13}$
描述:匹配主要的信用卡如: Visa (长16,以 4开头),Mastercard (长 16,以 51-55),Discover (长 16,以 6011开头),American Express (长 15,以 34 或 37开头). 所有的以 16 位数字格式,可以有或没有(-)在四个一组的数字中间。
匹配:6011-1111-1111-1111 | 5423-1111-1111-1111 | 342222222222111
不匹配: 4111-111-111-111 | 3411-1111-1111-111 | Visa
表达式: ^s*[a-zA-Z,s]+s*$
描述:任何大写或小写字母组成,以逗号或空格分开的文本,空格的数量不限。
匹配:Smith,Ed | Ed Smith | aBcDeFgH
不匹配: a123 | AB5 | Mr. Ed
表达式: ^d{9}[d|X]$
描述:一个简单的ISBN 校验表达式 –它仅仅校验10位数字构成的,最后一位或许为X的ISBN号。
匹配:1234123412 | 123412341X
不匹配:不是一个isbn
表达式:(?:4d{3})|(?:5[1-5]d{2})|(?:6011)|(?:3[68]d{2})|(?:30[012345]d))[ -]?(d{4})[ -]?(d{4})[ -]?(d{4}|3[4,7]d{13})$
描述:信用卡卡号校验。
匹配:6011567812345678 | 6011 5678 1234 5678 | 6011-5678-1234-5678
不匹配: 1234567890123456
表达式: "((")|[^"(")])+"
描述:匹配以引号引起的字符串,使用斜杠的字符串。
匹配“ "test" | "escape"quote" | """
不匹配: test | "test | "test"
表达式: ^([1-zA-Z0-1@.s]{1,255})$
描述:通用字符串校验表达式,可以防止用户输入恶意字符代码,允许输入email地址,姓名,地址,密码等等。不允许输入斜杠 *等非法字符。
匹配:email@email.com | My Name | asdf12df
不匹配: ‘,*&$<> | 1001' string
表达式:^([A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,} 40[A-Z]{1}[a-z]{1,})$|^$
描述:匹配首字母大写的以空格分开的字符串,也匹配空字符串。
匹配: Sacramento | San Francisco | San Luis Obispo
不匹配: SanFrancisco | SanLuisObispo | San francisco
表达式:(^|s)(00[1-9]|0[1-9]0|0[1-9][1-9]|[1-6]d{2}|7[0-6]d|77[0-2])(-?|[. ])([1-9]0|0[1-9]|[1-9][1-9])3(d{3}[1-9]|[1-9]d{3}|d[1-9]d{2}|d{2}[1-9]d)($|s|[;:,!.?])
描述: Incorporated other people's examples; removed extraneous parenthesis on 10/7/04. Currently the SSA site says 772 is the highest AREA number generated (http://www.ssa.gov/employer/highgroup.txt). Old expression was: (^|s)d{3}(-?|[. ])d{2}2d{4}($|s|[;:,!.?]). Looks for either the beginning of a line or whitespace before the beginning of the social security number,then either zero or one hyphen OR one of a period or space,then uses the 3 to reference the value returned in the parenthesis that includes the -?|[. ] (basically says if the first dash,period,or space is there,then the second one is required; and if the first dash,or space is not there,then the second one can't be either),and finally looks for the end of a line,whitespace,or punctuation characters after the social security number.
匹配:123-45-6789 | 123 45 6789 | 123456789
不匹配: 12345-67-890123 | 1234-56-7890 | 123-45-78901
表达式:<[^>]+>
描述:这个表达式用来查找所有的开闭标记,可很好的用于HTML或XML文档的标记清理。我用来清理HTML中的XML标记。我找出所有的标记,然后删除那些非标准的的标记。
匹配: <html> | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> | <
不匹配: Any plain old text | http://www.regexlib.com/Add.aspx | xml>
表达式:^[0-9]{1,}(,[0-9]+){0,}$
描述:它可以校验html页面的格式输入(checkbox,optionbox,selectbox)等,尤其是一次输入多个数字值的时候,例如用户一次选择一个或更多的时候!
匹配: 1111 | 47,26,2,1,1111,12 | 25,1245,2122,23232
不匹配: 111,| 1a1,111,1212,23 | 11aa,aaa,asas,asa
表达式:^(?!^(PRN|AUX|CLOCK$|NUL|CON|COMd|LPTd|..*)(..+)?$)[^x00-x1f?*<>:;|"/]+$
描述:对保留字符进行检查,如 <> 和 "。
匹配:abc
不匹配: PRN
表达式:^([a-z0-9]+([-a-z0-9]*[a-z0-9]+)?.){0,}([a-z0-9]+([-a-z0-9]*[a-z0-9]+)?){1,63}(.[a-z0-9]{2,7})+$
描述: [注释:这个域名通过 Macromedia's ColdFusion MX测试.我肯定它工作于其他正则引擎时还需要额外的信息。]在找了一些正则表达式后,我发现没有一个可以完全的可靠的处理子域名或者顶级域名的正则表达式。因此,我写了一个,然后测试它。它不匹配如: -.domain.com,-a.domain.com,-domain.com,domain-.com,以及在顶级域名前的字符数超过63个的域名。
匹配: a.domain.com,a-a.domain.com,a--a.domain.com,a--defg.com,domain.co.uk.
匹配: 800-med-alert.com | jump.to | archive-3.www.regexlib.com
不匹配: example | a-.domain.com |http://regexlib.com/
表达式:^(?![0-9]{6})[0-9a-zA-Z]{6}$
描述:匹配一个六位的密码,并且其中至少含有一个字母。
匹配:123a12 | a12345 | aaaaaa
不匹配:
222221========================================================================================数字格式
表达式: ^$?(d{1,3},?(d{3},?)*d{3}(.d{0,2})?|d{1,3}(.d{0,2})?|.d{1,2}?)$ 美国货币格式(中国的人民币应该是一样的,改为人民币符号即可了) 匹配: $1.99 | 1.99 | .99 不匹配: $10.999 | 100,00.99 | blank
^([1-9]{0,1})([0-9]{1})(.[0-9])?$ 匹配: 1 | 1.1 | 0.1 01 | 01.1 | 0.10 ^(?!u00a2) #Don't allow cent symbol p{Sc}? #optional unicode currency symbols (?!0,?d) #don't allow leading zero if 1 or more unit (d{1,3} # 1 to 3 digits (,d{3})* # if the is a comma it must be followed by 3 digits |(d+)) # more than 3 digit with no comma separator (.d{2})?$ # option cents $1,501.13 | £215 | 4.93 01.00 | $.00 | ¢50 (?!^0*$)(?!^0*.0*$)^d{1,5}(.d{1,2})?$ 校验为5位整数位,两位小数位,且不允许为0 12345.12 | 0.5 123456.12 | 1.234 | .1 ^$?d+(.(d{2}))?$ 可以有也可以没有美元符号,分位也可以有,也可以无。 $2.43 | 2.02 | $2112 2.1 | $.14 | $2,222.12 ^$?-?([1-9]{1}[0-9]{0,2}(,d{3})*(.d{0,2})?|[1-9]{1}d{0,}(.d{0,2})?|0(.d{0,2})?|(.d{1,2}))$|^-?$?([1-9]{1}d{0,2}))$|^($?([1-9]{1}d{0,2})))$ 金融格式,美元符号可选,正负可选 ($4,000.00) | -$4000.00 | -$400.00 4,00.000 | abc | $ ^d{0,2}(.d{1,Arial; line-height:26px"> 输入为两位数的整数,小数 99.99 | 99 | .99 999.999 | 999 | .999 ^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$ 浮点数的格式可以是科学指数形式 123 | -123.35 | -123.35e-2 abc | 123.32e | 123.32.3 ^[+]?d*$ 只能输入数字,不可输入其他字符 0123456789 | 1234 | 1 1.0?& | a1 | 2a- ^d*[0-9](|.d*[0-9]|,d*[0-9])?$ 数据格式 123456.123456 | 123456,123456 | 123456 123a.123 | 123a,123 | a 匹配逗号数据格式,单精度数,也匹配空字符串。 ^(d|,)*.?d*$ 1,000 | 3,000.05 | 5,000,000 abc | $100,000 | Forty 匹配正的数据,不匹配0或者负值: (^d*.?d*[1-9]+d*$)|(^[1-9]+d*.d*$) 0.050 | 5.0000 | 5000 0 | 0.0 | .0 匹配0-9999999,7位数允许 ^d{1,7}$ 1234567 | 9999999 | 1 12345678 | 9999.99 | -1234 匹配不超过两位小数的浮点数,实数,小数,允许负号 ^[-]?([1-9]{1}[0-9]{0,}(.[0-9]{0,2})?|0(.[0-9]{0,2})?|.[0-9]{1,2})$ 123 | 123.54 | -.54 123.543 | 0012 | 1,000.12 货币或金融格式,人民币格式 ^$?([1-9]{1}[0-9]{0,[0-9]{3})*(.[0-9]{0,2})?|[1-9]{1}[0-9]{0,2})?|(.[0-9]{1,2})?)$ $0,123.50 | $00.5 整数或两位小数 ^d+(?:.d{0,Arial; line-height:26px"> 1 | 1.23 | 1234.45 a1.34 | 1.23a | a 小数点左边7位,右边9位 ^(?=.*[1-9].*$)d{0,7}(?:.d{0,9})?$ 1 | 0123456.123456789 | .123456789 不匹配 .0123456789 | 0.0 | -1 数字,不接受空格 ^d+$ 2 | 50 | 0 -15 | 1.2 接受无符号整数,也匹配空字符串 ^d*$ 123 | 000 | 43 asbc | -34 | 3.1415 支持-999.99到+999.99,正的或者负的整数或者小数,百分比符号也支持,不允许空字符串,可根据需要调整范围 ^[-+]?[0-9]d{0,2})?%?$ 12.3 | 123 | -123.45 - | 10.1234 | -1234
匹配1-100
^([1-9]|[1-9]d|100)$ 1 | 50 | 100 0 | .5 | 101 实数 ^((d?)|(([-+]?d+.?d*)|([-+]?d*.?d+))|(([-+]?d+.?d*, ?)*([-+]?d+.?d*))|(([-+]?d*.?d+, ?)*([-+]?d*.?d+))|(([-+]?d+.?d*, ?)*([-+]?d*.?d+))|(([-+]?d*.?d+, ?)*([-+]?d+.?d*)))$ 8.0 | 8.0,-.38,+8.9 | 8.0,+8.8,0.09 + | . | a,b,c 值从5位整数,两位小数的格式 (^d{3,5},d{2}$)|(^d{3,5}$) 100,00 | 100 | 99999,99 99,99 | 999999 | 1,00 匹配任何有符号整数 ^(+|-)?d+$ -34 | 34 | +5 abc | 3.1415 | -5.3 匹配指定的数据格式 ^(d{1,3}'(d{3}')*d{3}(.d{1,3})?|d{1,3}(.d{3})?)$ 1'235.140 | 1'222'333.120 | 456 1234.500 | 78'45.123 | 123,0012 末尾是以 25,50,75,0或 00结束的数字 ^d*.?((25)|(50)|(5)|(75)|(0)|(00))?$ 0.25 | .75 | 123.50 .77 | 1.435 接受正的或者负的百分数0-100,接受2为小数。 ^-?[0-9]{0,2}(.[0-9]{1,2})?$|^-?(100)(.[0]{1,Arial; line-height:26px"> 12.34 | 100.00 | -2.1 101.1 | 10.123 | 100.10 匹配实数,+-号可以有可以无,小数点可以有可以无。 ^[-+]?d+(.d+)?$ 123 | -123.45 | +123.56 123x | .123 | -123. 匹配任何有效的数字字符串 ^[-+]?d*$ 匹配 123 | -123 | +123 abc | 3.14159 | -3.14159 匹配浮点数和数字字符串,+-号可选,也匹配空字符串 ^[-+]?d*.?d*$ 123 | +3.14159 | -3.14159 abc | 3.4.5 | $99.95 ^(d|-)?(d|,Arial; line-height:26px"> 5,000 | -5,000 | 100.044 abc | Hundred | 1.3.4 整个整数范围的数,并允许用户在千位输入逗号 ^0$|^[1-9][0-9]*$|^[1-9][0-9]{0,2}(,[0-9]{3})$ 1234 | 0 | 12,345 12,3245 | -1 | 1234.23 任何正负小数,包括空串 ^-?d*(.d+)?$ Description 4.4 | .4 | -.4 . | ... | zero 整数位为5位,小数为3位,不包括0 1 | 12345.123 | 0.5 0 | 0.0 | 123456.1234 匹配任何无符号的浮点数,数字串,也匹配空串 ^d*.?d*$ 123 | 3.14159 | .234 abc | -3.14159 | 3.4.2 匹配金额输入,或包含逗号 ^$?([0-9]{1,([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$ $3,023,123.34 | 9,876,453 | 123456.78 包括,号整数串 ^([1-9]{1}[0-9]{0,7})+((,[1-9]{1}[0-9]{0,7}){0,1})+$ 01,234,567 | 123,0445,3434,| 121,12, 可有也可没有小数位,支持逗号分隔千分位 ^(((d{1,3})(,d{3})*)|(d+))(.d+)?$ 9999999 | 99999.99999 | 99,999,999.9999 9999. | 9,99,99999.999 | 999.9999.9999 检查正的小数或整数 ^[0-9]*(.)?[0-9]+$ 1 | 123 | 132.132 1.2.2 | -123 匹配0 – 65535范围内的整数 ^([0-5]?d?d?d?d|6[0-4]ddd|65[0-4]dd|655[0-2]d|6553[0-5])$ 0 | 65535 | 59999 123456 | 69999 | 65599 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |