掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 732|回复: 7

[求助] 正则提取中文句子背后有英文翻译的情况

[复制链接]
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

    发表于 2020-8-1 22:54:27 | 显示全部楼层 |阅读模式
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑
      u* H" j' h4 H* ?: R1 d+ x4 {6 ]* Z! s2 l8 }& p
    案例:3 f6 t, A6 x* a
    《詩·東山》:“其新孔嘉,其舊如之何?”竊以爲當與《易》此節合觀,舊解未的。二句寫征人心口自語:“當年新婚,愛好甚摯,久睽言旋,不識舊情未一五變否?”乃慮其婦闊别愛移,身疏而心亦遐,不復敦夙好,正所謂“近鄉情更怯”耳。王建《遠將歸》:“遠將歸,勝未别時,在家相見熟,新歸歡不足”;則求金者遠歸之喜詞,與舍軀者生還之疑詞,區以别矣。西方古詩歌或歎喋血餘生,無錢無食,襤褸如丐,千里歸來,則婦初不閒曠,與不知誰何生子累累(Wohlgebrauchte Weiber,/Ungewisse Kinder);或託爲妻詬夫從軍云:“汝去我甚急,頭插鳥羽,獨不慮歸來時身將披龜甲耶!”(Ma di penne,a fuggirmi,il capo adorna;é porterai nel trionfo altero/delta luna ottomana ambe le corna!)雖口角獷鄙,要亦如王弼註所言情事也。- @" |6 `0 o- t
    / X- O9 p& ?6 a* M7 c
    需要的匹配形式:  “中文中文”(non-Chinese character)例如:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(Meine Sätze erläutern dadurch,dass sie,der,welcher mich versteht,am Ende als unsinnig erkennt,wenn er durch sie- auf ihnen-über sie hinausgestiegen ist)
    4 ^' _& D! @8 p9 z& a# t  }& M% k3 N( i

    + i# l& l/ C! Y5 ]- V( `大致上可以确定括号内的内容可以使用([^一-龠].+?)实现匹配。
    * @; K; c: k) N# @& a; y9 v$ B! s- `$ [' ^
    问题是怎么做到匹配双引号中的中文的时候,只匹配括号之前的第一个句子的双引号,即不要匹配成:% u/ x; d6 c9 {' q) U$ t3 g
    7 _6 w: A, H2 u; u0 J( a' Q6 C* {4 j
    “故記誦者,學問之舟車也。人有所適也,必資乎舟車,至其地,則捨舟車矣;一步不行者,則亦不用舟車矣。”當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(Meine Sätze erläutern dadurch,dass sie,der,welcher mich versteht,am Ende als unsinnig erkennt,wenn er durch sie- auf ihnen-über sie hinausgestiegen ist)
    . N9 F0 j6 S6 v" c; |; L& ]7 j0 Y& b& t4 h) \3 [: V: O* c
    即:
    # X# g+ ^) V* O  b只匹配:$ L4 x+ M7 i  Y
    中文中文(non-Chinese character)
    7 s2 X/ ]. R$ C4 u' a2 y  _; B, `& S5 T* ~' v, J/ l+ {
    但避免这种情况:
    3 s- m; }3 N' z+ q2 e4 m9 l中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)- T7 S4 _" _4 ]) d
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-1 23:29:12 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 07:52 编辑 + f  [% K% K7 K

    0 e) e7 p: V' R; Y4 b8 i* V匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    1. “([^“”]+)”(([^\x{2E81}-\x{FE29}]+))      /* \1匹配中文,\2匹配英文*/
    复制代码

    7 W; O; Y3 a4 S: x或者这样也行:7 B3 \7 J2 N4 b7 w1 X
    1. “([^“”]+)”(([^()]+))        /* \1匹配中文,\2匹配英文*/
    复制代码

    $ d) U. E( N; l' v& \6 u6 m: y6 W! p  n, F1 d6 a& i
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 07:08:22 | 显示全部楼层
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑
    ) u3 @6 W& [" J( E8 @. H
    Mandolin 发表于 2020-8-1 23:29' D7 m7 }  `$ v# A2 X5 A
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:, v# U% `$ J& O* j
    $ z5 o7 m& ~, b( h7 v
    ...

    0 x9 q. z2 N7 @: Q6 W9 q多谢回复!
    4 d, M9 o! c4 Y2 e已经更新了介绍。 ) s1 q4 k2 p- `" R+ `9 h2 m' ]
    我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到匹配前面的有且只有一句双引号中的中文,而不把更前面的带双引号的中文的第一个双引号,当作双引号的起点。只匹配:  _/ R& q" m1 `; h, C$ S
    中文中文(non-Chinese character)
    ; J9 n' `' V! l( O$ n6 D& U% N# ?7 t& ~
    但避免这种情况:: y9 R- A8 L6 Q3 L7 @9 `
    中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character); V+ M8 I7 V1 C; |

    ( M& @, t' _6 Q; Z
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 07:37:52 | 显示全部楼层
    abtxu 发表于 2020-8-2 07:088 h/ T  ]2 n' F. A! q& Q
    多谢回复!
    4 |4 `! v, w7 q已经更新了介绍。 ; f4 j  O. e6 m0 v# V- k/ D9 \  u5 x
    我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到 ...

    9 w7 N4 q" G, N/ l* h嗯,那我就理解对了,上面给的代码能解决你的问题吗?
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-2 07:45:38 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 07:52 编辑
    2 S' p3 {( o& w. n' k
    Mandolin 发表于 2020-8-1 23:292 X- @* ]7 a# w. R2 \
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    6 u4 H$ W8 c( e9 v: x  K% t& {: W7 o" B3 A6 d- ^1 W" I
    ...
    $ l* m8 N! B+ ]- B
    多谢分享正则表达式技巧。- d9 t8 D+ m/ Q" _7 B

    $ O# [" N6 f: g. i& \" y3 N% e3 D) P7 F
    % L/ `" [0 q! C  k5 r. D
    8 u, s" M4 {/ w; Q3 t5 q: I
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 08:56:29 | 显示全部楼层
    Mandolin 发表于 2020-8-2 07:37; A& `( ?: J& I9 l5 G- z/ \3 M
    嗯,那我就理解对了,上面给的代码能解决你的问题吗?

    9 G+ G+ c: @6 m  C3 O. K非常感谢!可以解决了!* i. G. w2 I! |# U+ \
    可否再拓展一下,把中文引号前面的部分也匹配进去?也就是把以下红色部分也匹配到。# k' ?0 Y* J* I3 ~
    當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(Meine Sätze erläutern dadurch,dass sie,der,welcher mich versteht,am Ende als unsinnig erkennt,wenn er durch sie- auf ihnen-über sie hinausgestiegen ist)
    . V( M. ~& [7 z. j2 O9 L' t# r1 H; [7 Z+ c
    观察到 當世哲人 前面可能有引号(其实也可能是句号,也可能没有)
    / q4 I; E: R3 h當世哲人/ d$ ]6 O9 [! l' V, I
    我试图用[。”]*([^“”。]+)”(([^\x{2E81}-\x{FE29}]+)匹配,但没有成功。3 Q* C3 a' W( R6 i! l! V# Z

    ; y& j9 {+ f! M: k$ Q) u! x; l0 l& M$ n9 H
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 10:13:12 | 显示全部楼层
    还要匹配前面部分的话,可以试试:! x3 D& H/ ?$ U( s; i

    0 M( G7 Z+ N5 i+ p4 \8 i1 T
    1. [。!”]*([^。!”]*)“([^“”]+)”(([^()]+))    /* \1匹配前面部分,\2匹配引号内中文,\3匹配括号内内容*/
    复制代码
    9 n  }0 k+ o  Z8 O! y( v. n8 k

    & ?' K) {# l  I( b, j1 g' x也不一定行,可能需要视情况修改,你多试试,大概用法知道了就可以举一反三
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 10:19:34 | 显示全部楼层
    Mandolin 发表于 2020-8-2 10:13
    2 p3 I. I# w8 N7 N* ~还要匹配前面部分的话,可以试试:

    . l0 P6 r- S7 P" {8 A+ \$ P可以了,非常感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-23 11:56 , Processed in 0.060003 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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