中文正则表达式匹配-正则中文匹配

原文链接:http://caibaojian.com/zhongwen-regexp.html

这篇文章主要讲如何使用正则匹配中文字符,中文正则表达式的匹配规则不像其他正则规则一样容易记住,下面一起看看这个中文正则表达式是怎么样的。

\w匹配的仅仅是中文,数字,字母,对于国人来讲,仅匹配中文时常会用到,见下

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

或许你也需要匹配双字节字符,中文也是双字节的字符

匹配双字节字符(包括汉字在内):[^\x00-\xff]

注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

更多常用正则表达式匹配规则:

英文字母:[a-zA-Z]

数字:[0-9]

匹配中文,英文字母和数字及_:

^[\u4e00-\u9fa5_a-zA-Z0-9]+$

同时判断输入长度:·

[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10}

^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$

1、一个正则表达式,只含有汉字、数字、字母、下划线不能以下划线开头和结尾:

^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$

其中:

^ 与字符串开始的地方匹配

(?!_)  不能以_开头

(?!.*?_$)  不能以_结尾

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

$  与字符串结束的地方匹配

//code from http://caibaojian.com/zhongwen-regexp.html
放在程序里前面加@,否则需要\\进行转义 @"^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$"

(或者:@"^(?!_)\w*(?<!_)$" 或者 @" ^[\u4E00-\u9FA50-9a-zA-Z_]+$ " )

2、只含有汉字、数字、字母、下划线,下划线位置不限:

^[a-zA-Z0-9_\u4e00-\u9fa5]+$

3、由数字、26个英文字母或者下划线组成的字符串

^\w+$

4、2~4个汉字

@"^[\u4E00-\u9FA5]{2,4}$";

5、

^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$

用:(Abc)+ 来分析: XYZAbcAbcAbcXYZAbcAb

来源:前端开发博客

原文地址:https://www.cnblogs.com/youyouyunduo/p/11706688.html

时间: 2024-10-11 15:12:28

中文正则表达式匹配-正则中文匹配的相关文章

【转载】Python使用中文正则表达式匹配指定中文字符串的方法示例

本文实例讲述了Python使用中文正则表达式匹配指定中文字符串的方法.分享给大家供大家参考,具体如下: 业务场景: 从中文字句中匹配出指定的中文子字符串 .这样的情况我在工作中遇到非常多, 特梳理总结如下. 难点: 处理GBK和utf8之类的字符编码, 同时正则匹配Pattern中包含汉字,要汉字正常发挥作用,必须非常谨慎.推荐最好统一为utf8编码,如果不是这种最优情况,也有酌情处理. 往往一个具有普适性的正则表达式会简化程序和代码的处理,使过程简洁和事半功倍,这往往是高手和菜鸟最显著的差别.

js正则表达式验证、匹配数字、匹配字符串、匹配中文、匹配任意字符备忘录

本文转自:91博客 :原文地址:http://www.9191boke.com/235792704.html 正则表达式或“regex”用于匹配字符串的各个部分,下面是我创建正则表达式的备忘录.包括一些常用的验证.匹配数字.匹配字符串.匹配中文.匹配任意字符串. 匹配正则 使用 .test() 方法 let testString = "My test string"; let testRegex = /string/; testRegex.test(testString); 匹配多个模

常用的正则表达式(例如:匹配中文、匹配html)(转载)

匹配中文字符的正则表达式: [u4e00-u9fa5]    评注:匹配中文还真是个头疼的事,有了这个表达式就好办了  匹配双字节字符(包括汉字在内):[^x00-xff]  评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)  匹配空白行的正则表达式:ns*r  评注:可以用来删除空白行  匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? />  评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能

正则验证匹配中文姓名全部源字符串

这个是验证匹配中文姓名的全部源串,在网上找了很久,大都是验证匹配含有中文,就在网上某人提供的正则的基础上修改成了验证所填姓名的每个字符,只有都匹配才能验证通过. 该正则为:^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$ 截图验证: 1,普通姓名 2,少数民族带点姓名 3,排除错误 经过一系列的测试,目前没发现没有过滤的情况

python 中文正则表达匹配

需求:由于某个n年前的工具的错误,在复制一批文件的时候产生了大量的"复件xxxxxxx""复件(2)XXXXX"等类似文件,由于目录结构深,文件多,预计在5000万个,但是有多少这种错误的文件不清楚,因此写个脚本遍历删除. #encoding=utf-8 #author: skybug #date: 2014-05-11 #function: 遍历指目录,删除中文开头的文件名的图片 import os,re cnt = 0 pattern = re.compile(

php 匹配替换中文

1.匹配中文 $str = "中文"; preg_match_all("/[\x{4e00}-\x{9fa5}]+/u",$str,$match); 2.替换中文: 在所在的php文件里,要加上 mb_internal_encoding("UTF-8"); mb_regex_encoding("UTF-8"); 这样才能支持多字节进行模式匹配.详细介绍:http://blog.chinaunix.net/uid-2027980

正则表达式、常用的匹配总结

1.正则表达式:我的理解就是,记录文本规则的代码,我主要运用它在.net表单验证中. 2.学习正则表达是的工具下载链接:http://www.unibetter.com/deerchao/downloads/RegexTester.zip 3.工具使用说明: 4.正则表达式有多种不同的风格.下表是在PCRE中元字符及其在正则表达式上下文中的行为的一个完整列表: 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个向后引用.或一个八进制转义符.例如,“n”匹配字符“n”.“\n”

JS_正则表达式_验证中文字符

正则表达式:"^[\u4e00-\u9fa5]{0,}$" . "/^[\u4E00-\u9FA5]{1,5}$/" 的含义: 在JS里,\uXXXX 是转义字符,"XXXX"对应的是16进制Unicode编码: ^ 匹配一行的开始.例如正则表达式^123能够匹配字符串"12345"的开始,但是不能匹配"012345":[\u4e00-\u9fa5] 指匹配在这两个Unicode编码之间的字符;{0,} 重

D21_1.1_正则表达式_单个字符匹配

# ### re.findall 找到所有与正则表达式相匹配的字符串 语法: lst = re.findall(正则表达式,字符串) # (1) 预定义字符集 # \d 匹配数字 # \D 匹配非数字 # \w 匹配字母或数字或下划线 (正则函数中,支持中文的匹配) # \W 匹配非字母或数字或下划线 # \s 匹配任意的空白符, 也就是 \n \t \r " " # \S 匹配任意非空白符 # \n 匹配一个换行符 [最好在正则表达式的前面加上r,让转义字符失效,原型化匹配] # \