掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

123
返回列表 发新帖
楼主: jonah_w

[求助] 正则表达式请教

[复制链接]
  • TA的每日心情
    开心
    2026-10-4 03:22
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2018-12-30 22:43:08 | 显示全部楼层
    jonah_w 发表于 2018-12-30 13:31
    0 j8 G7 N  }0 ~( i3 ]( P' e好吧。这个是Mac词典源文件…
    / _+ }! |2 _/ l
    看出来了,你弄成mdx的格式再试一遍,绝对稳
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2018-12-30 23:45:02 | 显示全部楼层
    孤影 发表于 2018-12-30 22:43% C9 u; O3 Y( k0 m. t$ l6 N
    看出来了,你弄成mdx的格式再试一遍,绝对稳

    ( Y/ [7 E4 K  b0 z好,我试试
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-1-12 12:15:08 | 显示全部楼层
    zzhirong 发表于 2018-12-26 10:02, }; E/ `" c9 d8 ]( s
    这问题用 XPath 可以不用这么烧脑,用正则表达式则是把简单事情复杂化了,附 python 程序实现,依赖 lxml  ...

    0 q' c+ b) R8 V今天终于有机会试了一下这个方案,可是报了个错。。。+ J  }- Y! E* `1 C7 d' _# ~

    ! k; x# B3 g9 G
    . U2 L5 G; x9 s
    1. Traceback (most recent call last):
      / R; Y, `  |- ^5 W
    2.   File "/Users/chris/Downloads/replace_tilde_with_title/replace_tilde_with_title.py", line 18, in <module>  n; R3 J8 c+ x) v5 }. q  p' {
    3.     D_NS = xml.nsmap["d"]4 E+ x! ^3 }2 c5 E# v
    4. AttributeError: 'lxml.etree._ElementTree' object has no attribute 'nsmap'
    复制代码
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-1-12 12:25:55 | 显示全部楼层
    本帖最后由 jonah_w 于 2019-1-12 12:27 编辑 ! l6 g/ e7 x7 o2 {- o
    anyid999 发表于 2018-12-25 17:41
    * ]2 E. w0 N1 y" o( h2 F! C新建个文件夹:
    2 v  d; S- z. K+ h4 ^2 c. N把附件解压放入, 1 ?1 M. V  D" \8 X& D/ x) x
    将你的要修改的txt文件, 更名为 inp ...
      i" {" D  O1 h) c, L+ p
    今天刚试了下这个脚本,发现有错误:
    / }7 x/ K2 b0 U
    1. Hello World!: A( ]  K/ j. P( ~) H' Q
    2. panic: runtime error: index out of range4 \9 Y% @/ L2 `$ t4 c) v7 e! |3 C
    3. ( v5 i* k2 z, ?. K
    4. goroutine 1 [running]:0 S& O" c. I9 {: H
    5. main.aEreplace(0xc0000a6a11, 0x10, 0x290, 0x0)+ V) O1 w2 N. {) M3 l! ]3 g
    6.         D:/Xspace/Xmen/re.go:27 +0xed
      0 `7 d+ I& Q1 U
    7. main.main()  y/ V; j$ Q0 l% j, d1 ?
    8.         D:/Xspace/Xmen/re.go:20 +0x20f
    复制代码
    ! y+ D; _; A! |% O
    ) j# b5 e5 Q( W6 y6 s/ C: S+ v! A
    不知道是不是我机器的问题。
    ; Z5 d2 r6 O4 S* \+ u2 V
    6 r$ C: i5 P0 A$ z6 g% S; `9 r这是input.txt内容:(更新一个附件:)
    . T* Y4 ~2 T+ i6 u) n
    1. <?xml version="1.0" encoding="UTF-8"?><d:dictionary xmlns="http://www.w3.org/1999/xhtml" xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng">8 Y+ Q% v+ N0 {; C: W: g
    2.     <d:entry id="_2udw" d:title="roughshod"><d:index d:value="roughshod" d:title="roughshod"/><span class="hw">roughshod</span><br/><span class="tag3">a.</span><br/><span class="table"><span class="num">1.</span><span class="tag4"></span><span class="tag1">(马匹)</span>钉有防滑蹄铁的</span><span class="table"><span class="num">2.</span>残暴的;残忍的;无情的:</span><span class="ex">a tyrant's ~ rule </span><span class="ex_c">暴君的残暴统治</span><hr class="hr_1"/>ride ~ over / 残暴地<span class="tag1">(或盛气凌人地)</span>对待;对…横行霸道;对…不予同情:<br/><span class="ex">ride ~ over the people </span><span class="ex_c">骑在人民头上作威作福</span><span class="ex">ride ~ over the rights of the children </span><span class="ex_c">践踏儿童的权利</span><span class="ex">ride ~ over sb.'s feelings </span><span class="ex_c">伤害某人的感情</span><span class="ex">The boss rode ~ over the men when they asked for higher wages. </span><span class="ex_c">工人们要求加薪,老板不予理睬。</span></d:entry>
      & s6 O% u9 O& v% j) Q
    3.     <d:entry id="_2u05" d:title="rookie"><d:index d:value="rookie" d:title="rookie"/><span class="hw">rookie</span><br/><span class="tag3">n.</span><br/><span class="tag4"></span><br/><span class="table"><span class="num">1.</span>新兵;生手,新手:</span><span class="ex">a police ~ </span><span class="ex_c">警察新手</span><span class="ex">a ~ star </span><span class="ex_c">新星</span><span class="table"><span class="num">2.</span><span class="tag1">(第一年参加联赛的职业球队的)</span>新队员,新秀</span><span class="tag2"><br/>[词典校勘] <br/></span> <span>rookie现在通用翻译为“新秀”。 另外,括号中说法有歧义。</span></d:entry>; A& v9 @1 T1 Q+ p; P' Y
    4.     <d:entry id="_owh" d:title="copybook"> <d:index d:value="copybook" d:title="copybook"/><span class="hw">copybook</span><br/> <span class="roma">Ⅰ</span> <span class="tag3">n.</span><br/> <span class="table"><span class="num">1.</span><span class="tag1">(附有规范供模仿的)</span>习字簿; 描红簿</span> <span class="table"><span class="num">2.</span><span class="tag1">(文件、信件、账目等的)</span>副本合订本, 副未册</span> <span class="roma">Ⅱ</span> <span class="tag3">a.</span><br/> <span class="table"><span class="num">1.</span>老一套的, 平庸的:</span> <span class="ex">a ~ maxim </span></d:entry> </d:dictionary>
    复制代码

    本帖子中包含更多资源

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

    x
  • TA的每日心情
    怒
    2019-11-22 21:06
  • 签到天数: 133 天

    [LV.7]常住居民III

    发表于 2019-1-12 15:10:36 | 显示全部楼层
    中文的没有试过.
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

     楼主| 发表于 2019-1-19 17:05:09 | 显示全部楼层
    zzhirong 发表于 2018-12-26 10:020 F+ I5 ^* [2 k: L, s0 w8 |; C8 g  e
    这问题用 XPath 可以不用这么烧脑,用正则表达式则是把简单事情复杂化了,附 python 程序实现,依赖 lxml  ...

    4 [  T, c, k4 u1 e- a& l感谢感谢。最终通过这个方案解决了。xpath果然是好东西。我发现很多正则无法实现的东西,xpath都可以轻松搞定! 不过xpath也有一些不好搞定的地方,比如生成的xml经常需要再次调整一下格式,这时候再用正则又可以完美解决。这两个东西结合用,潜力无穷的说。' U" j4 ], [: Q/ I

    5 b$ X8 w3 A/ d8 M正则最适合以行为单位的操作,xpath适合以元素为单位的操作。正则容易误杀误删的严重问题,xpath可以很好的规避。. K" C% Q1 R5 q# L& i3 x6 H

    + N0 ^1 t, T% k! Z* P' z! c8 F: q! V" f再次感谢推荐。如果需要任意一本Mac词典,可以向我索取。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2026-11-6 11:02 , Processed in 1.369142 second(s), 17 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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