问个正则的问题

正则表达式中匹配中文,我看到过两种形式:
1、
C# code\u4e00-\u9fa5\uf900-\ufa2d


2、
C# code\u4e00-\u9fa5


这两种有什么区别吗?什么情况下用1,什么情况下用2,周末了顺便散个分,周末还要上班,哎.....,祝大家周末愉快!


问题点数:200 回复次数:17 显示所有回复显示星级回复显示楼主回复 修改 删除 举报 引用 回复


加为好友
发送私信
在线聊天
symbol441
西门潇洒
等级:
发表于:2007-11-24 16:09:531楼 得分:20
周末上班无聊...

这两种有什么区别吗?什么情况下用1,什么情况下用2
----------------


应该用1的时候用1,应该用2的时候用2


修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
qq22345111
你要舍得死,我就舍得埋
等级:
发表于:2007-11-24 16:16:132楼 得分:20
\u4e00-\u9fa5\uf900-\ufa2d


2、
C# code\u4e00-\u9fa5


修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
symbol441
西门潇洒
等级:
发表于:2007-11-24 16:29:113楼 得分:30
C# code
CJKUnifiedIdeographs CJK统一汉字 \u4E00-\u9fAF
CJKCompatibilityIdeographs CJK兼容汉字 \uF900-\uFAFF





匹配汉字:

Regex r= new Regex(@"[\u4e00-\u9fa5]+");
MatchCollection m=r.Match(yourstring);

-------------------------
如果需要使用正则表达式匹配Unicode字符的话...
这里是几个主要非英文语系字符范围(google上找到的):

2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、单位、年号、月份、日期、时间等。

3400~4DFFh:中日韩认同表意文字扩充A区,总计收容6,582个中日韩汉字。

4E00~9FFFh:中日韩认同表意文字区,总计收容20,902个中日韩汉字。

A000~A4FFh:彝族文字区,收容中国南方彝族文字和字根。

AC00~D7FFh:韩文拼音组合字区,收容以韩文音符拼成的文字。

F900~FAFFh:中日韩兼容表意文字区,总计收容302个中日韩汉字。

FB00~FFFDh:文字表现形式区,收容组合拉丁文字、希伯来文、阿拉伯文、中日韩直式标点、小符号、半角符号、全角符号等。

比如需要匹配所有中日韩非符号字符,那么正则表达式应该是^[\u3400-\u9FFF]+$
理论上没错, 可是我到msn.co.ko随便复制了个韩文下来, 发现根本不对, 诡异
再到msn.co.jp复制了个'お', 也不得行..

然后把范围扩大到^[\u2E80-\u9FFF]+$, 这样倒是都通过了, 这个应该就是匹配中日韩文字的正则表达式了, 包括我們臺灣省還在盲目使用的繁體中文

而关于中文的正则表达式, 应该是^[\u4E00-\u9FFF]+$, 和论坛里常被人提起的^[\u4E00-\u9FA5]+$很接近

需要注意的是论坛里说的^[\u4E00-\u9FA5]+$这是专门用于匹配简体中文的正则表达式, 实际上繁体字也在里面, 我用测试器测试了下'中華人民共和國', 也通过了, 当然, ^[\u4E00-\u9FFF]+$也是一样的结果

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
root_
千年
等级:
发表于:2007-11-24 16:48:324楼 得分:30
汉字的Unicode编码范围为\uF900-\uFA2D\uF900-\uFA2D

\uF900-\uFA2D 包含如下字符:

豈更車賈滑串句龜龜契金喇奈懶癩羅蘿螺裸邏樂洛烙珞落酪駱亂卵欄爛蘭鸞嵐濫藍襤拉臘蠟廊朗浪狼郎來冷勞擄櫓爐盧老蘆虜路露魯鷺碌祿綠菉錄鹿論壟弄籠聾牢磊賂雷壘屢樓淚漏累縷陋勒肋凜凌稜綾菱陵讀拏樂諾丹寧怒率異北磻便復不泌數索參塞省葉說殺辰沈拾若掠略亮兩凉梁糧良諒量勵呂女廬旅濾礪閭驪麗黎力曆歷轢年憐戀撚漣煉璉秊練聯輦蓮連鍊列劣咽烈裂說廉念捻殮簾獵令囹寧嶺怜玲瑩羚聆鈴零靈領例禮醴隸惡了僚寮尿料樂燎療蓼遼龍暈阮劉杻柳流溜琉留硫紐類六戮陸倫崙淪輪律慄栗率隆利吏履易李梨泥理痢罹裏裡里離匿溺吝燐璘藺隣鱗麟林淋臨立笠粒狀炙識什茶刺切度拓糖宅洞暴輻行降見廓兀嗀﨎﨏塚﨑晴﨓﨔凞豬益礼神祥福靖精羽﨟蘒﨡諸﨣﨤逸都﨧﨨﨩飯飼館鶴

这些字符有些形状虽然与常见的相同,但编码不同,一般是无法用输入法直接打出来的

用\uF900-\uFA2D\uF900-\uFA2D全面一些,但一般来说,没有这个必要,一般输入法能打出的汉字,都包含在\uF900-\uFA2D内了,所以一般情况下,只用\uF900-\uFA2D即可

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
wuhq030710914
wuhq
等级:
发表于:2007-11-24 16:53:415楼 得分:0
呵呵,看来今天上班的人也不少嘛?

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
xray2005
♂风车车.Net(要飞翔,必须靠自己!xray2005.cnblogs.com)
等级:
发表于:2007-11-24 16:58:156楼 得分:10
学习

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
chuxue1342
@楚}===天{==========雪飲>
等级:
发表于:2007-11-24 16:59:067楼 得分:10
MARK!!接点分!

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
wuhq030710914
wuhq
等级:
发表于:2007-11-24 17:06:298楼 得分:0
root_
千年
----------------
你的正则很 N 吧,推荐点资料来看一下

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
root_
千年
等级:
发表于:2007-11-24 19:26:139楼 得分:20
更正一下4楼的内容,贴的时候没注意,回复之后CSDN就挂掉了,到现在才能打开

//汉字的Unicode编码范围为\uF900-\uFA2D\uF900-\uFA2D
汉字的Unicode编码范围为\u4e00-\u9fa5,\uf900-\ufa2d


//用\uF900-\uFA2D\uF900-\uFA2D全面一些,但一般来说,没有这个必要,一般输入法能打出的汉字,都包含在\uF900-\uFA2D内了,所以一般情况下,只用\uF900-\uFA2D即可
用\u4e00-\u9fa5\uf900-\ufa2d全面一些,但一般来说,没有这个必要,一般输入法能打出的汉字,都包含在\u4e00-\u9fa5内了,所以一般情况下,只用\u4e00-\u9fa5即可


TO:8楼,称不上N,只是有一阵子用得多些,资料看过一些,觉得www.regexlab.com的不错,这个没什么难的,平时多练习下就可以了

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
wanabe
飝兲蟲
等级:
发表于:2007-11-24 20:00:1810楼 得分:10
up~~

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
LeoMaya
postreetboy
等级:
发表于:2007-11-24 20:03:1911楼 得分:10
噢, 路过一下下

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
nanjg
阿菠萝
等级:
发表于:2007-11-24 20:05:0412楼 得分:10
接分

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
wuyi8808
  空军
等级:
发表于:2007-11-24 20:07:0213楼 得分:10
mark, jf.

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
suiqirui19872005
坐断东南 笑煞之!!
等级:
发表于:2007-11-24 21:03:2814楼 得分:10
接分

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
mlhy20060406

等级:
发表于:2007-11-24 21:30:2915楼 得分:10
mark

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
wuhq030710914
wuhq
等级:
发表于:2007-11-26 12:55:1916楼 得分:0
结帖了

修改 删除 举报 引用 回复

加为好友
发送私信
在线聊天
riken_mail

等级:
发表于:2008-03-18 16:33:1217楼 得分:0
路过!!!

加支付宝好友偷能量挖...


评论(0)网络
阅读(71)喜欢(0)SQL及数据库