掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1030|回复: 20

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

[复制链接]

该用户从未签到

发表于 2009-3-13 12:52:23 | 显示全部楼层 |阅读模式
原问题:在TXT文件中,怎样才能把所有的词条项目单独提取出来?0 q! g$ a3 J) G+ [+ |  c+ z! d

" |. \1 W: e) c新问题:接着问个问题,在法语里面,有很多特殊,比如èéêë,我想把这些单词中的èéêë全部转换为e,请问怎么做?5 g( J" u. O; _
比如,已知每个此条的首尾我都构造了3个#,即###。那么对于###élève###,我要转成eleve。
5 c/ r& s2 G- [' l8 @我自己想的办法是用正则表达式,把(?<=###.*)[èéê&euml;](?=.*###)替换为e。2 Y9 c+ b/ X( X9 n8 W) l
在正则表达式的测试工具Regex Tester里面,这样替换可以得到正确答案(见下图),但是在Ultraedit的正则表达式里面,无论选择Perl、Unix还是Ultraedit,都无法得到正确结果,谁能指点一下?! F6 U* _( c- O

1 v- _1 {& F+ E2 J3 }! b6 p4 M! H- }; O
[ 本帖最后由 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啊。
' t7 P' _. ?5 F. s) F找规律,然后用正则表达式。" i$ F; J" H5 r, Q' B* c4 @4 @
比如:" o  U! M1 D. R5 t
like<br>喜欢。I like...+ z2 }: D) _7 \& r; y3 K; M

4 ~7 C% ^, E/ q5 h% C) ]/ F替换<br>.*为空,勾选正则表达式选项即可。

该用户从未签到

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

该用户从未签到

发表于 2009-3-14 10:28:43 | 显示全部楼层
uedit,勾选正则表达式,advanced 选中List lines containing string,! {' u+ K2 z! d. ?$ y
查找</>^p*$,查找结果点一下clipbord即复制到剪贴板中了。
% `9 r" U8 s+ S& P2 ^然后新建文本,粘贴,通过替换去除所有的</>^p (^p表换行符)即可。
1 V" u  k% }4 [: X* {3 y对了,这个操作第一条词条应当丢了,补上第一条即可。

该用户从未签到

发表于 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 发表 4 F4 ?, Y2 z% v/ q% `
èéê&euml;在除了词条的其它位置是否有出现,是否需要替换?
2 W  a/ |  D, D2 A% n# W& Y- e7 i) `
FIND:###^(?++^)[èéê&euml;]^(?++^)###3 d  G' n2 T8 y  P$ p/ |
REPLACE:###^1e^2###
  z4 _) V& ~8 ]$ q4 X执行次数:执行一至多次,直到找不到为止。% `( x- @6 {; U* U3 r
$ `/ T5 S2 k# o, N' P4 G
注意:之前要转换为unicode编码,否则可能会出错。

本帖子中包含更多资源

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

x

该用户从未签到

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

该用户从未签到

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

该用户从未签到

 楼主| 发表于 2009-3-15 14:08:06 | 显示全部楼层
竟然有些字符论坛显示不出来,我发图片算了:" o+ ?) A7 Q8 X/ w- e7 N! V. e* i
5 M' j! h7 r$ O, q2 \+ B7 F- y, S
' E3 m) A. r# W& T2 m0 j6 `
[ 本帖最后由 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的引擎是贪婪模式的,如果有空格就不被匹配进去。' t7 I. P, b3 A2 C5 K
用per引擎是个好办法。

该用户从未签到

 楼主| 发表于 2009-3-15 17:50:37 | 显示全部楼层
当用ULTRAEDIT的引擎时,无法匹配到本应在第7行的###[&Ecirc;tre] sujet à###,而是匹配到了第31行的###a cappella (difficultés)###,如下图:
/ _' L4 s8 G% I* y# v8 K' G: O7 D
* s3 ^' P: F. \1 e: U7 J$ L  m! J当使用Perl引擎时,正确匹配到了第7行:0 o, }2 P" m  l5 u% M

4 ~/ P/ N( _6 n" I+ z% c& B: L  h! |$ Z* s- ^
注:我都是从文件开头开始搜索的。

本帖子中包含更多资源

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

x

该用户从未签到

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

回复 18楼 cdyg 的帖子

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

该用户从未签到

发表于 2009-3-15 18:19:31 | 显示全部楼层
用peal要结合边界规则,不然替换时不方便。1 Y/ N) w) {. x
3 ^5 q/ {3 T  e: x+ Q! ]5 b
如果用ue引擎的正则表达式,可以再简化写成:& r1 ?$ J9 v) x
查找:###^(?++^)[èéê&euml;……]
# n- W) A( l2 f1 |& m8 ~' g替换:###^1e
3 N3 _6 Z% t. s. U+ \# d1 V% {8 U0 S就能匹配上了。& ?4 k6 `/ b! l: @: w1 r5 x
& L, z4 T3 w/ N4 n. c5 {/ h) V
[ 本帖最后由 cdyg 于 2009-3-15 18:21 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-8 04:18 , Processed in 0.061469 second(s), 11 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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