加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式匹配中文

发布时间:2020-12-14 00:52:45 所属栏目:百科 来源:网络整理
导读:转载自换联网 方法1: 正则匹配中文汉字根据页面编码不同而略有区别: GBK/GB2312编码:[x80-xff]+ 或 [xa1-xff]+ UTF-8编码:[x{4e00}-x{9fa5}]+/u 方法2: 在vim中,可以使用 [^x00-x7f]+ 来匹配所有中文。 它表示非ASCII码的集合,当然表示汉字。这是

转载自换联网


方法1:
正则匹配中文汉字根据页面编码不同而略有区别:
GBK/GB2312编码:[x80-xff>]+ 或 [xa1-xff]+
UTF-8编码:[x{4e00}-x{9fa5}]+/u


方法2:
在vim中,可以使用
[^x00-x7f]+
来匹配所有中文。

它表示非ASCII码的集合,当然表示汉字。这是一种粗略的表示。




方法3:
1.puts /[一-龥]+/.match("this is 中文") =>中文

2.str2="123中文"
puts /p{Han}+/u.match(str2)

文本编码格式:utf-8

文件第一行:#encoding:utf-8

require "rubygems"
require "iconv"
print Iconv.iconv("GBK","UTF-8",/p{Han}+/u.match("tiantianxin你好angshang天天向上")[0]) =>你好





Ruby 和部分语言可以直接 #{Han} 等方式匹配特定的语言,但是对于某些语言,如 JavaScript,是不可能如此简便的


还有常用的:


/p{Word}+/u 不限于 a-z0-9 的成词字符(就是非标点制表符空格等杂类的字符)
/p{Hiragana,Katakana}+/u 匹配平假名+片假名



适用于中韩日的正则表达式,参考:http://chrisyip.im/post/regular-expression-for-cjk/

学习参考:http://ruby-china.org/topics/5680

举例:



scan之后,存储到数组text中的汉字是unicode码:




对每个数组对象加上encode(“utf-8”)即可将汉字输出:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读