中文正则表达式匹配-正则中文匹配&&日语韩语等常用正则表达式

正则表达式 判断是否是中文

(一)字母、数字、下划线、汉字正则表达式

  1. 只有字母、数字和下划线且不能以下划线开头和结尾的正则表达式:^(?!)(?!.*?$)[a-zA-Z0-9_]+$

    只有字母和数字的: ^[a-zA-Z0-9_]+$

  2. 至少一个汉字、数字、字母、下划线: “[a-zA-Z0-9_\u4e00-\u9fa5]+”

  3. 至少一个汉字的正则表达式:”^[\u4e00-\u9fa5]”

  4. 最多10个汉字: ValidationExpression=”^[\u4e00-\u9fa5]{0,10}”

  5. 只含有汉字、数字、字母、下划线不能以下划线开头和结尾:^(?!)(?!.*?$)[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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public   bool RegexName(string str)  
{
   bool flag=Regex.IsMatch(str,@"^[a-zA-Z0-9_\u4e00-\u9fa5]+$");
   return flag;
}

Regex reg=new Regex("^[a-zA-Z_0-9]+$");
if(reg.IsMatch(s))
{
   \\符合规则
}
else
{
   \\存在非法字符
}

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public List<Map<String, String>> getUser(String deptId) {

  Pattern pattern = Pattern.compile("^[a-zA-Z0-9_]+$");
  Matcher matcher = pattern.matcher(deptId);
  if (matcher.find()) {
    //如果匹配
  }else{
    //不匹配
  }
}

日语韩语等常用正则表达式

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
^[0-9]*$ 数字 
^\d{m,n}$ m-n位的数字
^[0-9]+(.[0-9]{2})?$ 有两位小数的正实数
^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ 浮点数
^(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}$ 手机号码
/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/ Email地址
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.? 域名
[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ URL
^\d{15}|\d{18}$ 身份证号(15位、18位数字)
^\d{4}-\d{1,2}-\d{1,2} 日期格式
[\u4e00-\u9fa5] 中文字符的正则表达式
^[ァ-ヶー]{1,45}$日语的正则表达式
/x3130-/x318F (韩文
/xAC00-/xD7A3 (韩文)
[1-9][0-9]{4,} 腾讯QQ号
[1-9]\d{5}(?!\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地址
^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$ xml文件
^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$正浮点数
密码必须包含:半角数字、大写英文,小写英文、标点符号这4类中至少3种: ^(?![0-9a-z]+$)(?![0-9A-Z]+$)(?![0-9!#\$%&=|\-\^@\[:\]\,\./\+\?]+$)(?![a-z!#\$%&=|\-\^@\[:\]\,\./\+\?]+$) (?![a-zA-Z]+$)(?![A-Z!#\$%&=|\-\^@\[:\]\,\./\+\?]+$)[a-zA-Z0-9!#\$%&=|\-\^@\[:\]\,\./\+\?]{8,16}$(特殊字符根据需要添加,个别字符需要转译)
Boss 扫一下呗