掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 706|回复: 7

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

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

    [LV.9]以坛为家II

    发表于 2020-8-1 22:54:27 | 显示全部楼层 |阅读模式
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑 1 b0 D. x6 r; @; g. A

    ' g9 g2 P+ Q( i+ t. p$ b案例:" Q5 t' b+ t/ H; \8 w$ d; X6 {
    《詩·東山》:“其新孔嘉,其舊如之何?”竊以爲當與《易》此節合觀,舊解未的。二句寫征人心口自語:“當年新婚,愛好甚摯,久睽言旋,不識舊情未一五變否?”乃慮其婦闊别愛移,身疏而心亦遐,不復敦夙好,正所謂“近鄉情更怯”耳。王建《遠將歸》:“遠將歸,勝未别時,在家相見熟,新歸歡不足”;則求金者遠歸之喜詞,與舍軀者生還之疑詞,區以别矣。西方古詩歌或歎喋血餘生,無錢無食,襤褸如丐,千里歸來,則婦初不閒曠,與不知誰何生子累累(Wohlgebrauchte Weiber,/Ungewisse Kinder);或託爲妻詬夫從軍云:“汝去我甚急,頭插鳥羽,獨不慮歸來時身將披龜甲耶!”(Ma di penne,a fuggirmi,il capo adorna;é porterai nel trionfo altero/delta luna ottomana ambe le corna!)雖口角獷鄙,要亦如王弼註所言情事也。" l! p# M1 f' W' |; G& h
    . g0 d4 f4 [& d0 y: l
    需要的匹配形式:  “中文中文”(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)
    - M% j: ?# _6 E. W: I9 V6 `- }( [* o: V* ~1 y2 T' R+ Z
    8 x" x) o1 J' x- P: J& X5 B
    大致上可以确定括号内的内容可以使用([^一-龠].+?)实现匹配。0 W8 O: P0 _; Z0 g/ N6 J" K( {
    4 x* R7 P7 w. O7 e  f1 A$ K
    问题是怎么做到匹配双引号中的中文的时候,只匹配括号之前的第一个句子的双引号,即不要匹配成:  N8 h. Z) @5 I/ W

    8 l& ~. x- ^! b* j( }% |( K“故記誦者,學問之舟車也。人有所適也,必資乎舟車,至其地,則捨舟車矣;一步不行者,則亦不用舟車矣。”當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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)- w5 N' H5 q" q8 b* O

    + L/ y" R8 E* z) _即:! Q+ V8 W. M! ?2 ?
    只匹配:
    * e4 w% j* `2 R. d" i9 ]中文中文(non-Chinese character)5 v8 C1 W; a: C2 \! \

      o. {- i1 l3 Y5 M但避免这种情况:
    ' Q! e2 G: I, k$ M8 B中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)
    ( n4 J2 f3 g0 M0 {- c# U
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-1 23:29:12 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 07:52 编辑
    . n9 ~9 _- S% f. X+ `- n; l; B; T& x9 U5 r
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    1. “([^“”]+)”(([^\x{2E81}-\x{FE29}]+))      /* \1匹配中文,\2匹配英文*/
    复制代码

    , h* ~5 r/ _0 K: Z0 F: M+ V- I或者这样也行:
    ' l2 g) X$ h/ V& x1 ~  n
    1. “([^“”]+)”(([^()]+))        /* \1匹配中文,\2匹配英文*/
    复制代码
    % l! J  _8 _7 c1 v1 F
    ! g7 w8 V1 n8 x" q
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 07:08:22 | 显示全部楼层
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑
    0 J/ p4 ]- ~0 K4 E& J* X: }
    Mandolin 发表于 2020-8-1 23:29
    " I8 A& N3 c& R3 N匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:2 f& J2 `" [3 q4 c8 p9 ~# r. \/ A
    " n$ N' Q6 M! \. ~6 H" _) T
    ...
    8 o  S4 o1 w; r( I- \& @" c) u2 ]
    多谢回复!! e4 x" W1 d* A, E6 y
    已经更新了介绍。
    - C& }8 C) f( C/ @我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到匹配前面的有且只有一句双引号中的中文,而不把更前面的带双引号的中文的第一个双引号,当作双引号的起点。只匹配:0 w# k3 A, q' B( \( o% P2 X; \
    中文中文(non-Chinese character); X2 ^/ w* D) C, N  P- Q
    / l1 I7 s8 O8 Z; d" ~7 I/ |( k7 q
    但避免这种情况:! H1 o' t, Y- G- W2 V. K6 U1 s0 S, L
    中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)4 e0 F" M6 Y  ]

    2 Y3 p. C& w8 u( ?/ l  _! r! ?% i
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 07:37:52 | 显示全部楼层
    abtxu 发表于 2020-8-2 07:08
    9 f! A4 }3 t" |, g' ~7 z0 \多谢回复!
    % A# L, {" t6 B; S% C0 A已经更新了介绍。 & w: ]& t% i0 ^1 j  m8 r
    我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到 ...

    6 K* j/ K: U5 j/ u( W嗯,那我就理解对了,上面给的代码能解决你的问题吗?
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-2 07:45:38 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 07:52 编辑
    ( r: G: P- a6 |" w4 Y# l) t" p
    Mandolin 发表于 2020-8-1 23:29
    # G" A, |6 |- a. [" o/ E匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    # y% d! T+ s0 U, Q( [
    * o' y+ o- Y8 `' z6 e$ y% N2 G4 J ...
    3 x- @1 X7 q* X! \$ {6 k
    多谢分享正则表达式技巧。# l& G' m3 o# ~3 l
    7 g2 y3 f" y# y, A
    * F' x0 p4 E* l- K

    8 S2 W' k' \. d1 a% M' V' l* P
    " J7 H+ ~1 V; X0 ]' W
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 08:56:29 | 显示全部楼层
    Mandolin 发表于 2020-8-2 07:37/ f3 N6 r/ r& ]
    嗯,那我就理解对了,上面给的代码能解决你的问题吗?

    $ Z: h1 }3 ^/ Y# l1 ^' L: n# u非常感谢!可以解决了!
    ( r; [9 K0 A* e$ H可否再拓展一下,把中文引号前面的部分也匹配进去?也就是把以下红色部分也匹配到。
    $ Y: L/ M! A& j$ b9 C當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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)
    5 @# b3 I" @6 W' L, S/ ^; b
    3 l& R( D5 {) j% r3 f$ x观察到 當世哲人 前面可能有引号(其实也可能是句号,也可能没有)' t7 a- h# N3 V
    當世哲人+ f9 q. u5 B/ O9 c
    我试图用[。”]*([^“”。]+)”(([^\x{2E81}-\x{FE29}]+)匹配,但没有成功。: c/ ~! G" i9 L! a# W

    3 M# @% n3 b3 z4 @9 J1 P3 r* _( x2 ?* K
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 10:13:12 | 显示全部楼层
    还要匹配前面部分的话,可以试试:
    5 l* s3 x- i( X' |7 n5 e! E1 A$ S, {/ [4 P% H
    1. [。!”]*([^。!”]*)“([^“”]+)”(([^()]+))    /* \1匹配前面部分,\2匹配引号内中文,\3匹配括号内内容*/
    复制代码
    , q1 D7 h* K3 S6 }/ t  s/ c
    & I! v9 ~7 g& T2 s
    也不一定行,可能需要视情况修改,你多试试,大概用法知道了就可以举一反三
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 10:19:34 | 显示全部楼层
    Mandolin 发表于 2020-8-2 10:13
      t: d. S/ z. j( V9 Z& j还要匹配前面部分的话,可以试试:

    1 ?3 @7 i, h5 ]0 d, I可以了,非常感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-25 07:04 , Processed in 0.042159 second(s), 8 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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