regex正则表达式中文(正则表达式rei)
正则表达式,匹配中文问题
换个软件吧。。。大大,谁说正则不能支持中文。。。。
当然,你也可以用UNICODE来代替。不过,还要去查汉字的UNICODE,太累了。
只能跟你说,很多支持正则的软件都能支持中文。
验证中文正则表达式怎么写?
正则表达式主体:
[0-9]+[a-zA-Z]+[0-9a-zA-Z]*|[a-zA-Z]+[0-9]+[0-9a-zA-Z]*
说明:分为两种情况:
①至少一个数字开头,接着至少一个字母,后面无论是数字还是字母都可以。
②至少一个字母开头,接着至少一个数字,后面无论是数字还是字母都可以。
补充说明:虽然有些环境使用\d或[:digit:]之类的形式可以表示数字,或者其它的特定的形式所对应的特定字符集,但是这样表示并不是通用的;因此建议使用通用的方式来写正则表达式,如[0-9]表示数字,[a-zA-Z]表示大小写字母等。当然,对于特定的编程语言可能还会涉及到转义字符,届时请注意一下。
邮编的正则表达式
代码如下:
package TestRegex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test01 {
? /**
? ?* 邮政编码正则:"^[1-9]\\d{5}$"
? ?* ^:正则开始符
? ?* $:正则结束符
? ?* [1-9]:范围为1-9
* \:转移字符
? ?* \d:数字【0-9】
? ?* X{n}:恰好n次:注意从0开始
? ?*/
? public static void main(String[] args) {
? ? ? //定义正则
? ? ? String str= "^[1-9]\\d{5}$";
? ? ? //正确的邮件编码
? ? ? String s = "471400";
? ? ? //错误邮政编码
? ? ? String s2 ="4560200";
? ? ?/**
? ? ? ?* Pattern为模式类型,
? ? ? ?* compile(正则)方法预编译正则,
? ? ? ?* 得到一个Matcher对象
? ? ? ?*/
? ? ? Pattern p =Pattern.compile(str);
? ? ? //Pattern中的matcher()方法传入要匹配的字符串与正则进行匹配i
? ? ? Matcher m=p.matcher(s);
? ? ? Matcher m2=p.matcher(s2);
? ? ? //Matcher类中的matches()方法判断是否匹配成功
? ? ? boolean bo= m.matches();
? ? ? boolean bo2= m2.matches();
? ? ? //输出匹配结果:true为成功,false为失败
? ? ? System.out.println(bo);
? ? ? System.out.println(bo2);
? }
}
扩展资料
正则表达式简单语法及常用正则表达式:
基本符号:
^ ?表示匹配字符串的开始位置 ?(例外 ?用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)
$ ?表示匹配字符串的结束位置
* ?表示匹配 零次到多次
+ ?表示匹配 一次到多次 (至少有一次)
? ?表示匹配零次或一次
. ?表示匹配单个字符
| ?表示为或者,两项中取一项
( ?) 小括号表示匹配括号中全部字符
[ ?] 中括号表示匹配括号中一个字符 范围描述 如[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+)*
如何使用正则表达式判断字符串中是否有中文
中文在正则里是特定的/[\u4e00-\u9fa5]+/g这就是匹配中文的正则表达式
正则表达式 匹配中文后面的数字
using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
string str1="kfkwe4中午吃什么748282,akdfke1w4";
string str2="dk4545edfkke不在意的样子-8342111,dsamskw45s";
Regex reg = new Regex(".*[\u4e00-\u9fa5]+([^\u4e00-\u9fa5,]*).*");
str1 = reg.Replace(str1, "$1");
str2 = reg.Replace(str2, "$1");
Console.WriteLine(str1);
Console.WriteLine(str2);
}
}