掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1167|回复: 20

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

[复制链接]

该用户从未签到

发表于 2009-3-13 12:52:23 | 显示全部楼层 |阅读模式
原问题:在TXT文件中,怎样才能把所有的词条项目单独提取出来?
. r5 ^0 N. {# I! t% o  c) D/ B" m7 f9 C9 y! S' z) j! e
新问题:接着问个问题,在法语里面,有很多特殊,比如èéêë,我想把这些单词中的èéêë全部转换为e,请问怎么做?" t' a) e% C9 W' {" T
比如,已知每个此条的首尾我都构造了3个#,即###。那么对于###élève###,我要转成eleve。
# D! g5 M7 a: m$ Z& a) x& m我自己想的办法是用正则表达式,把(?<=###.*)[èéê&euml;](?=.*###)替换为e。
% ~/ H6 U' c- S6 Y& W8 `在正则表达式的测试工具Regex Tester里面,这样替换可以得到正确答案(见下图),但是在Ultraedit的正则表达式里面,无论选择Perl、Unix还是Ultraedit,都无法得到正确结果,谁能指点一下?
8 j2 ]( e, B. {& a; r4 ]
# q: S" c7 ?% _9 N0 \: G
$ Z$ M  i$ T! }. [' U1 k[ 本帖最后由 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啊。
+ x  z- J# s/ i  s8 l( o, g找规律,然后用正则表达式。' o8 U* z7 J$ N: b6 b
比如:9 e, n) j+ [' B4 Z+ p  Y# W6 ^. H- q
like<br>喜欢。I like...
- T! S( Z" M3 Y0 w+ d  E5 A. y0 z) b6 W# }8 P
替换<br>.*为空,勾选正则表达式选项即可。

该用户从未签到

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

该用户从未签到

发表于 2009-3-14 10:28:43 | 显示全部楼层
uedit,勾选正则表达式,advanced 选中List lines containing string,
0 E$ v! [8 S9 ~& a: I* A4 E* v查找</>^p*$,查找结果点一下clipbord即复制到剪贴板中了。
. @! N8 m) y) L) F0 E6 r2 g1 x然后新建文本,粘贴,通过替换去除所有的</>^p (^p表换行符)即可。
( C. o5 P# w5 w! _+ M; J2 p4 r* `对了,这个操作第一条词条应当丢了,补上第一条即可。

该用户从未签到

发表于 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 A) v- I( N0 ~) d; |
èéê&euml;在除了词条的其它位置是否有出现,是否需要替换?
9 `  t8 o2 a& G8 J
FIND:###^(?++^)[èéê&euml;]^(?++^)###
3 t4 s" L% m; K$ ?- _) TREPLACE:###^1e^2###
( F% y9 Z# m3 s* J* U# z' V执行次数:执行一至多次,直到找不到为止。* S& Y8 j3 a- N  n, K) @) z. _

) g1 G+ V, o& ]9 Q& e: b; p3 t注意:之前要转换为unicode编码,否则可能会出错。

本帖子中包含更多资源

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

x

该用户从未签到

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

该用户从未签到

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

该用户从未签到

 楼主| 发表于 2009-3-15 14:08:06 | 显示全部楼层
竟然有些字符论坛显示不出来,我发图片算了:
) @* z. {* K# y  Z2 v( o- y  [: e+ C* w$ t

/ e: J' i5 [" V' Z6 b9 U9 `" S. w[ 本帖最后由 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 s9 H5 ^, }
用per引擎是个好办法。

该用户从未签到

 楼主| 发表于 2009-3-15 17:50:37 | 显示全部楼层
当用ULTRAEDIT的引擎时,无法匹配到本应在第7行的###[&Ecirc;tre] sujet à###,而是匹配到了第31行的###a cappella (difficultés)###,如下图:
' r, G: L' c! c# g/ [
+ i$ Z0 A3 W, Y) p9 Q3 Y当使用Perl引擎时,正确匹配到了第7行:, @4 x7 I! b8 w3 G6 D7 g0 \) q

1 W, I9 a, W8 H  {7 e& D
, ?3 R# K5 x$ S! O. h; u注:我都是从文件开头开始搜索的。

本帖子中包含更多资源

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

x

该用户从未签到

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

回复 18楼 cdyg 的帖子

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

该用户从未签到

发表于 2009-3-15 18:19:31 | 显示全部楼层
用peal要结合边界规则,不然替换时不方便。
; R$ o' T0 }# t4 `" J3 `2 T+ u8 w. Y4 `# g. J$ i. Y8 }/ m# q
如果用ue引擎的正则表达式,可以再简化写成:
, j7 k: N8 R) j& ?# X) {  i查找:###^(?++^)[èéê&euml;……]  L) W' ~( K+ J% p# }" n
替换:###^1e
% ]8 F, I# O; o就能匹配上了。
2 J  a; k% N# X/ I
8 j$ m: \0 E# b2 ~% K& \[ 本帖最后由 cdyg 于 2009-3-15 18:21 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-4-23 05:53 , Processed in 0.022965 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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