正则表达式和中文

1

  博客插件需要实现一个功能,博文中出现的类似"@郭美美baby "的字符串用正则表达式找出来,并替换成链接和js、css相结合的丰富形态。如果只是数字下划线等英文字符组成的,就非常简单可写成:

  "/@\w+\s/"

  但中文字符的出现让这个表达式非常难搞。

2

  『.』可以匹配“除换行符/n之外的任意字符 ”,但这可能只适用于“单字节字符 ”,因为点号匹配的其实只是“除换行符/n之外的任意字节,php中『/w 』『/d 』『/s 也只能匹配ascii字符。因此,要匹配中文,需要另外的方法,unicode提供了一种方法,可以用\x{4e00}-\x{9fff} 表示汉字,关于unicode这一点,我搞明白了之后会再来补充。

3

  最终得到的正则表达式如下:

  "/@([\x{4e00}-\x{9fff}a-zA-Z0-9_])+\s/u"

4

  这篇文章我将会进行多次修改,以期对这个问题深入了解。以下知识将是下一个阶段的重点了解的:unicode,ascii等编码;gbk,utf-8,utf-16等编码方式。正则表达式的内在含义。 

资料列表:http://chinansu.blog.51cto.com/1504253/428947

http://blog.sjzm.org/archives/64

http://blog.csdn.net/cj205/article/details/6305902 

转载于:https://www.cnblogs.com/yanng/archive/2011/08/05/2128083.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值