正则表达式 判断是否是中文
(一)字母、数字、下划线、汉字正则表达式
只有字母、数字和下划线且不能以下划线开头和结尾的正则表达式:^(?!)(?!.*?$)[a-zA-Z0-9_]+$
只有字母和数字的: ^[a-zA-Z0-9_]+$
至少一个汉字、数字、字母、下划线: “[a-zA-Z0-9_\u4e00-\u9fa5]+”
至少一个汉字的正则表达式:”^[\u4e00-\u9fa5]”
最多10个汉字: ValidationExpression=”^[\u4e00-\u9fa5]{0,10}”
只含有汉字、数字、字母、下划线不能以下划线开头和结尾:^(?!)(?!.*?$)[a-zA-Z0-9_\u4e00-\u9fa5]+$
解释:
^ 与字符串开始的地方匹配
(?!_) 不能以_开头 (?!.*?_$) 不能以_结尾 [a-zA-Z0-9_\u4e00-\u9fa5]+ 至少一个汉字、数字、字母、下划线 $ 与字符串结束的地方匹配
6.一个正则表达式,只含有汉字、数字、字母、下划线不能以下划线开头和结尾:
^(?!)(?!.*?$)[a-zA-Z0-9_\u4e00-\u9fa5]+$
解释:
^ 与字符串开始的地方匹配
(?!) 不能以开头
(?!.*?$) 不能以结尾
[a-zA-Z0-9_\u4e00-\u9fa5]+ 至少一个汉字、数字、字母、下划线
$ 与字符串结束的地方匹配
放在程序里前面加@,否则需要\进行转义 @”^(?!)(?!.*?$)[a-zA-Z0-9_\u4e00-\u9fa5]+$”
(或者:@”^(?!)\w*(?<!)$” 或者 @” ^[\u4E00-\u9FA50-9a-zA-Z_]+$ “ )
7、只含有汉字、数字、字母、下划线,下划线位置不限:
^[a-zA-Z0-9_\u4e00-\u9fa5]+$
8、由数字、26个英文字母或者下划线组成的字符串
^\w+$
9、2~4个汉字
@”^[\u4E00-\u9FA5]{2,4}$”;
(二) 整数与浮点数
^[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)
E-Mail正则表达式:
email正则表达式:两种方式都可以
(1) \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
(2) ^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*((\\.[A-Za-z]{2,}){1}$)
国际域名格式如下:
域名由各国文字的特定字符集、英文字母、数字及“-”(即连字符或减号)任意组合而成, 但开头及结尾均不能含有“-”,“-”不能连续出现 。 域名中字母不分大小写。域名最长可达60个字节(包括后缀.com、.net、.org等)。
/^a-z@([a-z0-9][-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/i;
解释:
/内容/i 构成一个不区分大小写的正则表达式;
^ 匹配开始
$ 匹配结束
[a-z] E-Mail前缀必需是一个英文字母开头
([a-z0-9][-_]?[a-z0-9]+) 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字符,也是匹配的,*表示0个或者多个。
* 表示0个或多个前面的字符.
[a-z0-9]* 匹配0个或多个英文字母或者数字
[-_]? 匹配0个或1“-”,因为“-”不能连续出现
[a-z0-9]+ 匹配1个或多个英文字母或者数字,因为“-”不能做为结尾
@ 必需有个有@
([a-z0-9][-_]?[a-z0-9]+)+ 见上面([a-z0-9][-_]?[a-z0-9]+)*解释,但是不能为空,+表示一个或者为多个。
[.] 将特殊字符(.)当成普通字符
[a-z]{2,3} 匹配2个至3个英文字母,一般为com或者net等.
([.][a-z]{2})? 匹配0个或者1个[.][a-z]{2}(比如.cn等) 我不知道一般.com.cn最后部份是不是都是两位的,如果不是请修改{2}为{起始字数,结束字数}
1 | public bool RegexName(string str) |
日语韩语等常用正则表达式
1.基础
\d 匹配一个数字字符。等价于[0-9]。grep 要加上-P,perl正则支持
\D 匹配一个非数字字符。等价于[^0-9]。grep要加上-P,perl正则支持
\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_]”,这里的”单词”字符使用Unicode字符集。
\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-7),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。
\un 匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号(©)。
2.常用
1 | ^[0-9]*$ 数字 |