免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2455 | 回复: 6
打印 上一主题 下一主题

perl正则匹配问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-02-12 17:53 |只看该作者 |倒序浏览
$test = "你好@@测试[[[]]测试]&^*%$#]].torrent";
想把$test里面不是汉字,字母和数字的字符全部用@符号替换,怎么写这个匹配模式。
主要是非汉字的匹配。望高手指点!谢了。

论坛徽章:
0
2 [报告]
发表于 2007-02-12 22:39 |只看该作者
原帖由 s-jackie 于 2007-2-12 17:53 发表
$test = "你好@@测试[[[]]测试]&^*%$#]].torrent";
想把$test里面不是汉字,字母和数字的字符全部用@符号替换,怎么写这个匹配模式。
主要是非汉字的匹配。望高手指点!谢了。


把数字,字母和汉字全部排除,剩下的就执行替换咯.
置顶帖子里有如何匹配汉字的regex.

论坛徽章:
0
3 [报告]
发表于 2007-02-13 18:51 |只看该作者

回复 1楼 s-jackie 的帖子


  1. $str = "你好@@测试[[[]]测试]&^*%$#]].torrent";
  2. # method 1
  3. for (split('', $str)) {
  4.     #print $_, "\n";
  5.     $new_str .= /[\w|\x80-\xFF]/ ? $_ : '@';
  6. }
  7. print $new_str, "\n";

  8. # method 2
  9. $str =~ s/[^\w|\x80-\xFF]/@/g;
  10. print $str, "\n";

复制代码


-- ulmer

论坛徽章:
1
白羊座
日期:2014-05-04 17:53:33
4 [报告]
发表于 2007-02-15 00:52 |只看该作者
果然牛人!测试结果如下:
  1. 你好@@测试@@@@@测试@@@@@@@@@@torrent
复制代码

建议将双引号换成单引号。

\w 匹配单词字符,包括字母、数字和"_";
\x80-\xFF 是什么意思?请不吝赐教。

论坛徽章:
0
5 [报告]
发表于 2007-02-15 12:55 |只看该作者
原帖由 jackiew 于 2007-2-15 00:52 发表

\w 匹配单词字符,包括字母、数字和"_";
\x80-\xFF 是什么意思?请不吝赐教。


匹配ox80-0xff,这个应该是汉字编码的范围

论坛徽章:
0
6 [报告]
发表于 2007-02-15 21:09 |只看该作者
原帖由 jackiew 于 2007-2-15 00:52 发表
果然牛人!测试结果如下:
  1. 你好@@测试@@@@@测试@@@@@@@@@@torrent
复制代码

建议将双引号换成单引号。

\w 匹配单词字符,包括字母、数字和"_";
\x80-\xFF 是什么意思?请不吝赐教。

一种汉字编码,应该是GB吧~~~
这个要看你机器所使用的编码
我的Ubuntu就不行,呵呵

论坛徽章:
1
白羊座
日期:2014-05-04 17:53:33
7 [报告]
发表于 2007-02-16 15:22 |只看该作者
谢谢楼上二位的指教!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP