免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 995636
打印 上一主题 下一主题

请问vim中的汉字的正则表达式是什么?[已解决] [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-12-08 01:41 |只看该作者
:%s/[^\x00-\xff]//g
在我的GVIM7.1上很好使啊……

论坛徽章:
0
12 [报告]
发表于 2007-12-08 11:24 |只看该作者
原帖由 995636 于 2007-12-7 21:24 发表


awk的那个可以,sed的没有试。不过把sed的那个正则表达式放到vim里仍旧不行,不知为什么。



  1. 1,$s/\([^ ]\+\)[ ]\+\([^ ]\+\)/\2 \1/
复制代码


我在vim中用这个命令能够对所有的行进行  对调 操作。

就是把 ( ) + 这些特殊字符都用 \ 进行转义

我的那个sed语句是因为用了-r 参数,如果不用 -r 参数的话,也是需要用\把( ) +进行转义的

论坛徽章:
0
13 [报告]
发表于 2007-12-08 19:43 |只看该作者
谢谢 盲炳 和 springwind426。

总算找到问题所在了:
vim中的+ 要用 \+,并且两个不同的字段之间不能用" ,"间隔。
用 :%s /\([^\x00-\xff]\+\)[ ]\*\([a-z]\{1,4}\)/\2 \1/g
就行了。

字段之间有没有空格无所谓。

[ 本帖最后由 995636 于 2007-12-8 19:46 编辑 ]

论坛徽章:
0
14 [报告]
发表于 2007-12-10 10:15 |只看该作者
原帖由 springwind426 于 2007-12-7 09:27 发表



[^[:cntrl:][:space:][:print:]]

这个能够保留acsii的标点符号,不过,中文标点符号也会被去除

什么意思?这个能区分中文标点和中文?
楼主的文本既然没有标点就简单多了。把字母、控制符、数字等去掉就行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP