掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 704|回复: 7

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

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

    [LV.9]以坛为家II

    发表于 2020-8-1 22:54:27 | 显示全部楼层 |阅读模式
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑 . f- F0 y6 i7 }. l8 P; L$ k
    ) I" F8 g" j5 S% c: U  @3 c' J
    案例:# w+ D. _& u8 d0 y% g7 ]$ ^! s
    《詩·東山》:“其新孔嘉,其舊如之何?”竊以爲當與《易》此節合觀,舊解未的。二句寫征人心口自語:“當年新婚,愛好甚摯,久睽言旋,不識舊情未一五變否?”乃慮其婦闊别愛移,身疏而心亦遐,不復敦夙好,正所謂“近鄉情更怯”耳。王建《遠將歸》:“遠將歸,勝未别時,在家相見熟,新歸歡不足”;則求金者遠歸之喜詞,與舍軀者生還之疑詞,區以别矣。西方古詩歌或歎喋血餘生,無錢無食,襤褸如丐,千里歸來,則婦初不閒曠,與不知誰何生子累累(Wohlgebrauchte Weiber,/Ungewisse Kinder);或託爲妻詬夫從軍云:“汝去我甚急,頭插鳥羽,獨不慮歸來時身將披龜甲耶!”(Ma di penne,a fuggirmi,il capo adorna;é porterai nel trionfo altero/delta luna ottomana ambe le corna!)雖口角獷鄙,要亦如王弼註所言情事也。7 k' r# |; w: |% B9 Q1 `
    1 ~* Q' s6 H9 H, l/ y8 h
    需要的匹配形式:  “中文中文”(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)
    % o1 _0 w( d% s- r6 ^# G
    ' `# E/ o, G9 [+ ?# b4 p) H% s* s6 }0 _  e" o
    大致上可以确定括号内的内容可以使用([^一-龠].+?)实现匹配。# X& q1 c$ {+ N

    ; E+ r% B* b' f( p8 V$ o3 m问题是怎么做到匹配双引号中的中文的时候,只匹配括号之前的第一个句子的双引号,即不要匹配成:
    1 ~9 x  k/ x& F( y- G4 t6 r  L% R" u+ U9 K5 b& y$ A
    “故記誦者,學問之舟車也。人有所適也,必資乎舟車,至其地,則捨舟車矣;一步不行者,則亦不用舟車矣。”當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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)
    # O* q! }  Z' I
    9 F  B3 l$ G  V+ \7 h; F即:; @& m) d7 J; a  l/ o0 @
    只匹配:
    9 Y# _3 d8 W$ y3 p中文中文(non-Chinese character)& m" @; h) P0 i

    % x* |& l2 v9 h" P8 q但避免这种情况:
    , U0 g/ Y/ D1 I% _( h+ ^中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)- j# Z( s! R. g
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-1 23:29:12 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 07:52 编辑 " d6 y0 m+ s) f$ Y

    ' I3 Y5 o8 H( U; Y- x, p2 h9 e6 p匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    1. “([^“”]+)”(([^\x{2E81}-\x{FE29}]+))      /* \1匹配中文,\2匹配英文*/
    复制代码

    6 F6 w) n; {3 N6 a' O或者这样也行:
    % Z- p" ?: H! g6 V: u+ O1 b( e: @
    1. “([^“”]+)”(([^()]+))        /* \1匹配中文,\2匹配英文*/
    复制代码
    1 u) \, m2 E& I: }1 V

    $ A: `9 V4 H5 K/ {$ C
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 07:08:22 | 显示全部楼层
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑 ' e8 R2 ]9 C) C% e$ W" y
    Mandolin 发表于 2020-8-1 23:299 U3 l+ }- x* |" g
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:9 a/ K% z0 J- D6 ~3 ^
    9 S% v) E* |0 k' a
    ...
    & B+ m- m' O+ D: C; Y" c& e5 E
    多谢回复!
    4 [. @/ E2 i3 p" X0 x: p& b% W/ L已经更新了介绍。 3 L' g  L8 C3 _) E7 @0 F& }
    我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到匹配前面的有且只有一句双引号中的中文,而不把更前面的带双引号的中文的第一个双引号,当作双引号的起点。只匹配:
    : j+ `7 d8 m) [3 I: T中文中文(non-Chinese character). u1 h7 M3 x- o" A1 g7 A" a  k4 ]
    3 r6 l* `) z7 Y( x) M' p% D3 P
    但避免这种情况:0 n* F; O) b( @. ?) T$ Y' f
    中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)1 _. x/ n6 R$ m  e( g7 U( C
    - }9 Q- {' G" d
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 07:37:52 | 显示全部楼层
    abtxu 发表于 2020-8-2 07:08+ L+ r1 n: \9 e- W
    多谢回复!3 E2 `  c' l& T& q
    已经更新了介绍。
    & r1 D, C: s2 E0 L* O我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到 ...
    ( ^6 n2 H( e) v' Q8 A2 j
    嗯,那我就理解对了,上面给的代码能解决你的问题吗?
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-2 07:45:38 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 07:52 编辑 ) O+ \; a0 Y- E9 u
    Mandolin 发表于 2020-8-1 23:29
    2 B4 Q7 D7 y2 P, J9 d匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:9 Q8 v* J9 T5 c- ~, V8 r5 p
    + r* l, k2 R( ^4 ^; F, j6 }9 Z! D4 m
    ...
    . R" W7 N  L' b4 K0 D, K
    多谢分享正则表达式技巧。$ x# o- M, Z' c$ k7 W  K) S2 S
    7 ^8 I, j5 A3 E1 [9 k9 x: p8 q
    8 w, a8 e' k8 L" k& @  F

    2 Z; Z! e! ]3 ]: d4 i9 p
    - i0 n; M  O5 J( i/ X, Q7 P- i+ T% g
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 08:56:29 | 显示全部楼层
    Mandolin 发表于 2020-8-2 07:375 p& |, v, F, L
    嗯,那我就理解对了,上面给的代码能解决你的问题吗?
    . a. ~  j* g6 ?
    非常感谢!可以解决了!
    * K; C4 ~8 Z$ s, u% P3 z" F可否再拓展一下,把中文引号前面的部分也匹配进去?也就是把以下红色部分也匹配到。
    9 `" x9 o. |8 z" _3 _& E2 O當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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)6 f. Y- ?( e2 x! T  U2 J
    0 f* h; [7 e" W% ^  g
    观察到 當世哲人 前面可能有引号(其实也可能是句号,也可能没有)
    ; `8 z3 a# S' _! T# ]當世哲人
    , S* e1 u) R" d; {8 ~! v我试图用[。”]*([^“”。]+)”(([^\x{2E81}-\x{FE29}]+)匹配,但没有成功。
    . Y9 s) S, C( O) g0 u( A. n9 W
    % O2 }9 ?3 A: z3 B' j  W& q4 b3 k9 ~/ ^% q
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 10:13:12 | 显示全部楼层
    还要匹配前面部分的话,可以试试:
    5 Z$ Z1 Z5 ?; a8 O) @5 J9 c9 O, j' p. B& B5 r$ O* o
    1. [。!”]*([^。!”]*)“([^“”]+)”(([^()]+))    /* \1匹配前面部分,\2匹配引号内中文,\3匹配括号内内容*/
    复制代码

    ; C# t( i5 J! n. X
    * K/ h6 N6 c2 D$ e* h3 U) H也不一定行,可能需要视情况修改,你多试试,大概用法知道了就可以举一反三
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 10:19:34 | 显示全部楼层
    Mandolin 发表于 2020-8-2 10:13( `6 u+ c6 R, B5 U% \* d
    还要匹配前面部分的话,可以试试:
    3 }# k. z9 C' p1 r& M
    可以了,非常感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

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

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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