掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1031|回复: 20

[求助] 如何提取所有的词条项目到另一个TXT中?(更新了一个新问题)

[复制链接]

该用户从未签到

发表于 2009-3-13 12:52:23 | 显示全部楼层 |阅读模式
原问题:在TXT文件中,怎样才能把所有的词条项目单独提取出来?
3 [8 W' C& Y) C( @: T* t5 a* w8 ~2 F8 |2 o3 R7 M
新问题:接着问个问题,在法语里面,有很多特殊,比如èéêë,我想把这些单词中的èéêë全部转换为e,请问怎么做?& Y* b) q5 N& U; I2 J
比如,已知每个此条的首尾我都构造了3个#,即###。那么对于###élève###,我要转成eleve。6 J  b7 w5 J( ~. ?$ l
我自己想的办法是用正则表达式,把(?<=###.*)[èéê&euml;](?=.*###)替换为e。
) Y8 N1 J9 E' T) t; {- \4 c在正则表达式的测试工具Regex Tester里面,这样替换可以得到正确答案(见下图),但是在Ultraedit的正则表达式里面,无论选择Perl、Unix还是Ultraedit,都无法得到正确结果,谁能指点一下?6 }$ f0 J) k5 k) f% @
: R7 v* k8 N2 l/ Q0 x
2 e+ K, |2 I  M. y! t
[ 本帖最后由 zcm1019 于 2009-3-14 19:21 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

该用户从未签到

发表于 2009-3-13 18:53:00 | 显示全部楼层
这个问题很雷人哈

该用户从未签到

发表于 2009-3-13 21:06:52 | 显示全部楼层
Er...用UltraEdit里的正则表达式将正文部分全部替换成空的?

该用户从未签到

发表于 2009-3-13 21:16:18 | 显示全部楼层
也可以用EMEDITOR啊。1 g3 P+ ?% h* p* m+ Y
找规律,然后用正则表达式。
8 Y, P+ O5 a( ?! S, E: B比如:' Y4 k8 l7 t) ^3 S, u1 L$ O
like<br>喜欢。I like...4 ~2 T+ p+ \! n2 Z3 _6 l
* S. r2 K: W! o- j
替换<br>.*为空,勾选正则表达式选项即可。

该用户从未签到

 楼主| 发表于 2009-3-14 00:11:03 | 显示全部楼层
谢谢,我试一试

该用户从未签到

发表于 2009-3-14 10:28:43 | 显示全部楼层
uedit,勾选正则表达式,advanced 选中List lines containing string,
3 \! g5 l4 H  t: H查找</>^p*$,查找结果点一下clipbord即复制到剪贴板中了。
: v- c3 {$ I9 k9 e然后新建文本,粘贴,通过替换去除所有的</>^p (^p表换行符)即可。
0 K# M; [5 ]4 w) I+ ]" m( D: _对了,这个操作第一条词条应当丢了,补上第一条即可。

该用户从未签到

发表于 2009-3-15 08:41:34 | 显示全部楼层
能不能èéê&euml;直接一个一个地换成e,这样也花多不了很多时间,而且也不需要在单词前后加###号标记了

该用户从未签到

 楼主| 发表于 2009-3-15 09:32:50 | 显示全部楼层
关键是我不知道怎么定位到此条中的è字母,而非整个此条。

该用户从未签到

发表于 2009-3-15 11:27:46 | 显示全部楼层
èéê&euml;在除了词条的其它位置是否有出现,是否需要替换?

该用户从未签到

发表于 2009-3-15 11:37:54 | 显示全部楼层
我想楼主的意思是只更换词条里面的èéê&euml;,解释里面的èéê&euml;就不换

该用户从未签到

发表于 2009-3-15 11:39:26 | 显示全部楼层
原帖由 cdyg 于 2009-3-15 11:27 发表 ) ~( L3 t: u! Y6 d5 G! v
èéê&euml;在除了词条的其它位置是否有出现,是否需要替换?

+ U3 O$ t0 k+ rFIND:###^(?++^)[èéê&euml;]^(?++^)###9 _* L% ?0 G1 p- J$ g8 b
REPLACE:###^1e^2###
2 w/ R8 q# D" X  x执行次数:执行一至多次,直到找不到为止。& a  W! U! k9 f. P: M. Q6 \  a' n
; P* V+ _3 n0 H% d& S1 @: @
注意:之前要转换为unicode编码,否则可能会出错。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

该用户从未签到

发表于 2009-3-15 11:48:32 | 显示全部楼层
其实,如果辞典不是太复杂的话,可以用特殊符号如###作为词条与解释的分隔符,到excel中打开(选择以###为分隔),
4 G) c& O4 r3 p2 F然后你会发现词条标题都在单独一个列中,选中这一列,将èéê&euml;给依次替换为e即可。

该用户从未签到

 楼主| 发表于 2009-3-15 13:25:36 | 显示全部楼层
啊,谢谢啊,就是只替换词条里面的,正文里面的不替换。

该用户从未签到

 楼主| 发表于 2009-3-15 14:08:06 | 显示全部楼层
竟然有些字符论坛显示不出来,我发图片算了:
7 F& D  D1 Q6 u+ O% H
9 _) S) I8 _6 U# A
3 @$ h7 N% \+ Q" b! u( H2 B& O[ 本帖最后由 zcm1019 于 2009-3-15 14:13 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

该用户从未签到

 楼主| 发表于 2009-3-15 15:19:34 | 显示全部楼层
哦,解决了,在Perl引擎下,把^(?++^)改成(.*)就可以了。

该用户从未签到

发表于 2009-3-15 17:30:26 | 显示全部楼层
多了一个"|"符号,当然不能匹配.

该用户从未签到

 楼主| 发表于 2009-3-15 17:33:58 | 显示全部楼层
那个|是用QQ截图时候造成的,本身没有|的。

该用户从未签到

发表于 2009-3-15 17:49:19 | 显示全部楼层
解决了就好,因为uedit的引擎是贪婪模式的,如果有空格就不被匹配进去。
0 J! w$ E& l8 y# Q9 q- B9 W用per引擎是个好办法。

该用户从未签到

 楼主| 发表于 2009-3-15 17:50:37 | 显示全部楼层
当用ULTRAEDIT的引擎时,无法匹配到本应在第7行的###[&Ecirc;tre] sujet à###,而是匹配到了第31行的###a cappella (difficultés)###,如下图:
0 h; l1 }1 s  e! o0 K1 m7 g% B% z" l. Y% e
当使用Perl引擎时,正确匹配到了第7行:
5 ?( I/ S8 o% O, l
0 Q6 m7 g3 S) [5 I$ ?7 ?  I2 s+ E* w- M' ^4 w/ V. |
注:我都是从文件开头开始搜索的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

该用户从未签到

 楼主| 发表于 2009-3-15 17:51:27 | 显示全部楼层

回复 18楼 cdyg 的帖子

感谢!我马上把刚刚转换的这个辞典上传。

该用户从未签到

发表于 2009-3-15 18:19:31 | 显示全部楼层
用peal要结合边界规则,不然替换时不方便。
& s! n. N/ m! A' r6 c8 ^  k) s' N1 U9 J
如果用ue引擎的正则表达式,可以再简化写成:
( E3 }$ f' @. v: U查找:###^(?++^)[èéê&euml;……]: o* O7 {  L" i2 o: m0 g
替换:###^1e+ y8 [& v' J  G6 u- q. A
就能匹配上了。0 Y$ D+ ?) o2 u4 C- j0 m
. P8 B8 c2 U, ?& z8 w- y/ D) [: T' j
[ 本帖最后由 cdyg 于 2009-3-15 18:21 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

小黑屋|手机版|Archiver|PDAWIKI |网站地图

GMT+8, 2024-5-8 09:03 , Processed in 0.095793 second(s), 11 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表