. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 回复
 
主题工具
nicol
 
nicol 的头像
热心会员
 
资 料:
注册日期: Jun 2001
帖子: 11,683 声望值: 6
精华: 0,解答: 11
#46 旧 2013-10-07, 18:07:52 默认
nicol 当前离线  

引用:
作者: river01 查看帖子
谢谢,那么中文双字节标点符号如,。、?!•:;¥是什么范围
仅仅是标点符号?这个真没琢磨过,简单的可以直接用[。、?!•:;¥]这样的,把能想到的标点都加进去就行了,毕竟标点符号并不多。要范围的话得去unicode字符表查了,仅仅是中文标点的没研究过,呵呵
回复时引用此帖
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,406 声望值: 5
精华: 0,解答: 129
#47 旧 2013-10-07, 19:19:47 默认
MacOS 当前离线  

刚才试了SUBLIME TEXT,应该UNICODE的问题不是EM的,估计PERL引擎都会有,中括号UNICODE范围同样是所有UNICODE字符
中文符号有个偷懒的写法,就是利用这个UNICODE的范围错误,[^\x00-\xFF\u0000],只要不分大小写就是双字节符号集


HIDDEN MESSAGE LEVEL 3
14863 159357 789 159357 3245687 3684
回复时引用此帖
river01
 
river01 的头像
核心会员
 
资 料:
注册日期: Dec 2002
帖子: 2,631 声望值: 3
精华: 0,解答: 6
#48 旧 2013-10-07, 21:00:40 默认
river01 当前离线  

引用:
作者: MacOS 查看帖子
上面刚刚说完……预查里不能用通配,+是不行的
EM不能用UNICODE模式表示准确的范围,你可以试验一下[\u0000]——里面的UNICODE字符随便写,虽然这个表达式只应该匹配其中一个UNICODE字符,但在EM使用时是指代所有UNICODE字符,中文范围俺也忘了哪里到哪里了,回头查一下
em预查不能通配,但我试了别的编辑器可以。

难道[\u0000]表示任意双字节unicode字符,那太强了。
回复时引用此帖
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,406 声望值: 5
精华: 0,解答: 129
#49 旧 2013-10-07, 21:28:54 默认
MacOS 当前离线  

应该说很多都不能用通配,估计是PERL系都是,起码UE和SUBLIME都不行,俺一直以为是EM特有的问题
并不是\u0000,而是任何UNICODE转义,EM和SUBLIME下都不能准确指定范围,只是看起来已经涵盖所有UNICODE字符,实际范围完全不明白,而且UNICODE写法实际上应该不能匹配UNICODE字符,而是双字节字符,比较明显的现象就是本地代码页不存在的字符是不匹配的,像十字架,心型,音符之类
回复时引用此帖
foxme
 
foxme 的头像
核心会员
 
资 料:
注册日期: Mar 2001
帖子: 4,041 声望值: 3
精华: 0,解答: 29
#50 旧 2013-10-08, 03:04:52 默认
foxme 当前离线  

引用:
作者: river01 查看帖子
(?<=^|(第.+[章集])).*?(?=$|(第.+[章集]))
1、这个我在EM里运行出错,但语法能理解。
2、如果想在[章集]后面加上固定的"空格加4个汉字"的章节名字,如何表示4个汉字?
在emeditor中可以用下面的方式粗略的定义4个所有非asc字符.

[[:unicode:]]{4}

如果是多语混排, 那么只能用下面的语句了

[^\x00-\xff]{4}

另外, @river01, 每次提问的时候要是能够提供一个样本文件, 这样我们讨论起来就方便一些.
回复时引用此帖
judite
 
judite 的头像
热心会员
 
资 料:
注册日期: Jan 2001
帖子: 2,554 声望值: 8
精华: 2,解答: 31
#51 旧 2013-10-08, 09:11:31 默认
judite 当前离线  

想学正则先把标准弄弄清楚罢
除了一些unix工具如grep、sed、awk使用posix标准,比较新的工具都使用pcre。pcre已经是事实上的标准了
回复时引用此帖
river01
 
river01 的头像
核心会员
 
资 料:
注册日期: Dec 2002
帖子: 2,631 声望值: 3
精华: 0,解答: 6
#52 旧 2013-10-08, 10:40:06 默认
river01 当前离线  

引用:
作者: MacOS 查看帖子
实际范围完全不明白,而且UNICODE写法实际上应该不能匹配UNICODE字符,而是......
实际测试了一下,确实不能匹配UNICODE字符.
[^\x00-\xff]是可以匹配的,包括汉字和中文标点。
回复时引用此帖
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,406 声望值: 5
精华: 0,解答: 129
#53 旧 2013-10-08, 10:53:05 默认
MacOS 当前离线  

[^\x00-\xff]在EM和SUBLIME中也不能匹配UNICODE,实际上也还是双字节,像版权符号没反应
回复时引用此帖
river01
 
river01 的头像
核心会员
 
资 料:
注册日期: Dec 2002
帖子: 2,631 声望值: 3
精华: 0,解答: 6
#54 旧 2013-10-08, 14:39:34 默认
river01 当前离线  

引用:
作者: MacOS 查看帖子
[^\x00-\xff]在EM和SUBLIME中也不能匹配UNICODE,实际上也还是双字节,像版权符号没反应
EM不能用我就换别的,换来换去发现WORD处理起来更容易。[!^1-^127]
回复时引用此帖
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,406 声望值: 5
精华: 0,解答: 129
#55 旧 2013-10-08, 14:48:22 默认
MacOS 当前离线  

是,有时候其他非正则还是挺好用,特别是些特色替换
回复时引用此帖
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,406 声望值: 5
精华: 0,解答: 129
#56 旧 2013-10-08, 15:19:29 默认
MacOS 当前离线  

试出所谓UNICODE范围的真实意义了,实际上,[\u]是被解释为小写字符或者说非大写,然后后面跟着的数字被当作了列举,所以[\uXXXX]实际上是所有小写字符加XXX的数字,[\uABCD-\uEFGH]的实际释义是,所有小写字符,再含ABC,然后D开始一直到所有小写字符,再含EFGH,因为EM中在不分大小写时,把双字节字符当成非大写,所以看起来就像所有中文字符那样,实际上还是涵盖了部分数字或者字母的,还有个反写法\U也被证实是大写字符
回复时引用此帖
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,406 声望值: 5
精华: 0,解答: 129
#57 旧 2013-10-08, 15:36:35 默认
MacOS 当前离线  

再试了下发现还是不对,俺把^看漏了,\u实际是大小写都包含,这个的含义是非数字、非符号,其中非符号包括单字节双字节UNICODE全非,那实际上,[\uXXXX]就是外加XXXX的非符号单字了,[\uABCD-\uEFGH]也是取决于D,从该字符顺序以后的到第一个非符号都会匹配,外加ABCEFGH,作为他的反义,\U表示数字加所有符号
回复时引用此帖
river01
 
river01 的头像
核心会员
 
资 料:
注册日期: Dec 2002
帖子: 2,631 声望值: 3
精华: 0,解答: 6
#58 旧 2013-10-08, 15:51:57 默认
river01 当前离线  

引用:
作者: MacOS 查看帖子
\U表示数字加所有符号...
我试的结果也是这样,^\U反而是汉字,当时就迷茫了。
回复时引用此帖
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,406 声望值: 5
精华: 0,解答: 129
#59 旧 2013-10-08, 15:59:26 默认
MacOS 当前离线  

仔细想了一下,俺的第一次分析应该是对的,只是漏掉了^忘记结论应该反过来,也就是说,56楼反过来说就是真实情况,也即是
引用:
实际上,[\u]是被解释为大写字符或者说非小写,然后后面跟着的数字被当作了列举,所以[\uXXXX]实际上是所有大写字符加XXXX的数字,[\uABCD-\uEFGH]的实际释义是,所有大写字符,再含ABC,然后D开始一直到所有小写字符,再含EFGH,因为EM中在不分大小写时,把双字节字符当成非小写,然后不分大小写的话还同时含小写字母,所以看起来就像所有中文字符那样,实际上还是涵盖了部分数字或者字母的,还有个反写法\U也被证实是小写字符
回复时引用此帖
river01
 
river01 的头像
核心会员
 
资 料:
注册日期: Dec 2002
帖子: 2,631 声望值: 3
精华: 0,解答: 6
#60 旧 2013-10-08, 16:31:09 默认
river01 当前离线  

word可以用[!一-龥^a-^127]确切地匹配中文标点符号
我试着变成正则的语法[^1-龥\x00-\xff] 也能匹配部分中文标点,我再查查编码表,是不是漏了。

此帖于 2013-10-08 16:53:36 被 river01 编辑. .
回复时引用此帖
发表新主题 回复

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 09:37:37.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号