社区
脚本语言
帖子详情
perl 判断中文字符
lidawei123
2009-04-07 10:25:38
用perl 如何判断读入的字符串是否是中文字符?
正则中应该如何写?
...全文
1123
20
打赏
收藏
perl 判断中文字符
用perl 如何判断读入的字符串是否是中文字符? 正则中应该如何写?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tjccn_wx
2009-04-21
打赏
举报
回复
楼主的需求已经超出匹配字符的范畴了,
多语种智能翻译?神啊
Steve
2009-04-16
打赏
举报
回复
日文环境Excel,输出到CSV应该是SHIFT_JIS吧.
梦无痕123
2009-04-16
打赏
举报
回复
$line =~/[\u4e00-\u9fa5]/
xsir317
2009-04-15
打赏
举报
回复
编码方式不一样的话,自然是不一样的。。。
但是如果都是utf-8呢?
excel里面读出来的,你自己比比吧,我就不多说了。。。
725137
2009-04-15
打赏
举报
回复
日语中虽然有些字和中文看起来是一样的.比如
"人间",看起来是一样的.但是他们的编码方式却不一样.中文模式下可能是gbk,或gb2316这些编号.日语模式下可能是sjis等.所以可以根据编码来判读.你要是在日语中间复制一个gbk中的"人间"到日语中的话,那么纯sijs看起来就会是乱码.所以你大可放心.
xsir317
2009-04-09
打赏
举报
回复
你不觉得你业务逻辑有问题么?
就算是用人工来判断也无法判断吧,这个字又是中文又是日文,没有上下文环境,你没有任何道理去否定它说它不是中文或者不是日文。
就算是手工来做也没办法做。
就好比一个黑人和白人的混血儿,你要查找“黑人的后代”和“白人的后代”,他都是。所以这种问题本身没办法处理。。。
类似问题:判断一个英文字符串是英文单词还是汉语拼音
“data”
那么你回答我,这个是英文单词呢,还是汉语拼音呢?
lidawei123
2009-04-09
打赏
举报
回复
楼上的说的太对了,现在就是要处理单独出现的日文汉字
平假和片假很好处理
就你举的例子来说 “比如单单一个“人”字,你说是日文还是中文?” 现在就是要check出来 这个人字到底是汉字还是日文
这个不知道以前有你有人搞过,真的就搞不定了么?
lidawei123
2009-04-09
打赏
举报
回复
符号表只能判断出一部分,日文中的汉字如果真要如“xsir317”所说:“跟中文某些字一模一样“;的话就没有什么办法了
xsir317
2009-04-09
打赏
举报
回复
简单来说,用“shanxia”或者用“やました”输入的“山下”两个字,在excel的一个单元格里面,这就是完全一致的数据,没有上下文就无法区分。
xsir317
2009-04-09
打赏
举报
回复
[Quote=引用 11 楼 lidawei123 的回复:]
你举的例子根本偏离主题,就是因为人工看不出来才需要从语言的编码方面寻找答案。
你这个人思想怎么总是看表面问题,即使找不到真正有效解决问题的答案,讨论这个问题也是很有意义的
[/Quote]
日文的日汉字编码有一部分和中文重叠,字词也有一部分完全一样
如果没有上下文语境,那么它们从根本上就是同一个字符串,判断个毛啊。。。
你不从表面看,你深入看一下试试啊。。。
DDGG
2009-04-09
打赏
举报
回复
[Quote=引用 7 楼 lidawei123 的回复:]
用编码区间很难匹配的就是 日文中的汉字 如:色管理 艶 闖 等等。。
这些字都会被认为日文之外的字。 高手们有什么好办法处理?
[/Quote]
日文单字不多吧,英文也不多,写一个正则表达式,如果匹配到除了这些字符以外的字符,就认为是中文。
只是提供一个思路,要我写这个正则是写不出来,对日文编码不熟悉,楼主也许可以参考上面ecitnet列的符号表。
lidawei123
2009-04-09
打赏
举报
回复
你举的例子根本偏离主题,就是因为人工看不出来才需要从语言的编码方面寻找答案。
你这个人思想怎么总是看表面问题,即使找不到真正有效解决问题的答案,讨论这个问题也是很有意义的
wx红杉树
2009-04-08
打赏
举报
回复
# 半角スペース
$spc = '\x20';
# 全角スペース
$eSpc = '(?:\xA1\xA1)'; # EUC-JP
$sSpc = '(?:\x81\x40)'; # SJIS
# 全角数字 [0-9]
$eLng = '(?:\xA3[\xB0-\xB9])'; # EUC-JP
$sLng = '(?:\x82[\x4F-\x58])'; # SJIS
# 全角小英字 [a-z]
$estr = '(?:\xA3[\xE1-\xFA])'; # EUC-JP
$sstr = '(?:\x82[\x81-\x9A])'; # SJIS
# 全角大英字 [A-Z]
$eStr = '(?:\xA3[\xC1-\xDA])'; # EUC-JP
$sStr = '(?:\x82[\x60-\x79])'; # SJIS
# 全角ひらがな [ぁ-ん]
$eHira = '(?:\xA4[\xA1-\xF3])'; # EUC-JP
$sHira = '(?:\x82[\x9F-\xF1])'; # SJIS
# 全角カタカナ [ァ-ヶ]
$eKana = '(?:\xA5[\xA1-\xF6])'; # EUC-JP
$sKana = '(?:\x83[\x40-\x96])'; # SJIS
# 半角カタカナ [ヲ-゜]
$ekana = '(?:\x8E[\xA6-\xDF])'; # EUC-JP
$skana = '[\xA6-\xDF]'; # SJIS
# EUC-JP文字
$euc1 = '[\x00-\x7F]'; # 1byte EUC-JP文字
$euc2 = '(?:[\x8E\xA1-\xFE][\xA1-\xFE])'; # 2byte EUC-JP文字
$euc3 = '(?:\x8F[\xA1-\xFE][\xA1-\xFE])'; # 3byte EUC-JP文字
$euc = "(?:$euc1|$euc2|$euc3)"; # EUC-JP文字
wx红杉树
2009-04-08
打赏
举报
回复
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
lidawei123
2009-04-08
打赏
举报
回复
就是日文的excel文档中可能会有中文,现在就是要检查这个excel中是否有中文
用编码区间判断不行。 日文和中文有一部分区间重叠
用返回编码格式判断也不行,遇到日文平假名返回不准确
楼上说的\p 是perl 里面的参数么,不大了解
xsir317
2009-04-08
打赏
举报
回复
你先说说你的字符串有些什么特点?
比如“介绍”就是一个中文词,“绍介”就是日文。或者有假名存在的字符串认为是日文,完全没有假名的认为是中文?
既然编码有重复,那么你是如何判断它是中文还是日文呢?
比如单单一个“人”字,你说是日文还是中文?
可能你的需求根本无法用任何方式做出来。一份日文文档,某一行出现了两个字 “人间”,如何认定?根本无法认定。
lidawei123
2009-04-08
打赏
举报
回复
用编码区间很难匹配的就是 日文中的汉字 如:色管理 艶 闖 等等。。
这些字都会被认为日文之外的字。 高手们有什么好办法处理?
lidawei123
2009-04-07
打赏
举报
回复
补充一下,是区分Excel的中文和日文
iambic
2009-04-07
打赏
举报
回复
用\p{Han}匹配汉子。
iambic
2009-04-07
打赏
举报
回复
什么叫"是区分Excel的中文和日文"?
C#正则表达式大全,
判断
字符
串是否为正整数,
中文
,英文.....
包含了常用正则表达式的使用,验证,正则表达式替换
字符
串,
判断
字符
串是否为正整数,
判断
输入的
字符
串是否全是英文、
中文
....
perl
语言入门(
中文
)
perl
语言入门的不二选择(
中文
)。适合新手、菜鸟了解
perl
,学习
perl
。主要包括
perl
语言的数据类型,循环控制,正则表达式的应用等基础内容。
Perl
语言教程
Perl
语言入门
Perl
语言教程
Perl
语言入门
perl
语言学习
perl
电子教程
PERL
程序设计(
中文
)
本教程由
perl
爱好者翻译整理,原为web 文档形式,由 George Ye 收集整理,编辑成Word文档。 本文内容翔实、层次清晰、通俗易懂的
PERL
程序设计好教材,而且是free版本。
脚本语言
37,741
社区成员
34,213
社区内容
发帖
与我相关
我的任务
脚本语言
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
复制链接
扫一扫
分享
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
试试用AI创作助手写篇文章吧
+ 用AI写文章