掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 985|回复: 7

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

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

    [LV.9]以坛为家II

    发表于 2020-8-1 22:54:27 | 显示全部楼层 |阅读模式
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑 4 U7 O: s" e5 k

    , I1 g4 c0 T- ?+ G6 d案例:
    . @% H. `) B: z# K6 C《詩·東山》:“其新孔嘉,其舊如之何?”竊以爲當與《易》此節合觀,舊解未的。二句寫征人心口自語:“當年新婚,愛好甚摯,久睽言旋,不識舊情未一五變否?”乃慮其婦闊别愛移,身疏而心亦遐,不復敦夙好,正所謂“近鄉情更怯”耳。王建《遠將歸》:“遠將歸,勝未别時,在家相見熟,新歸歡不足”;則求金者遠歸之喜詞,與舍軀者生還之疑詞,區以别矣。西方古詩歌或歎喋血餘生,無錢無食,襤褸如丐,千里歸來,則婦初不閒曠,與不知誰何生子累累(Wohlgebrauchte Weiber,/Ungewisse Kinder);或託爲妻詬夫從軍云:“汝去我甚急,頭插鳥羽,獨不慮歸來時身將披龜甲耶!”(Ma di penne,a fuggirmi,il capo adorna;é porterai nel trionfo altero/delta luna ottomana ambe le corna!)雖口角獷鄙,要亦如王弼註所言情事也。
    5 R' P6 v) I) N; T
    * [0 t3 o* V( f1 b需要的匹配形式:  “中文中文”(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)
      [2 {2 ~4 L! S2 g! Y0 N: {1 G
    - J* g+ C. y& G4 x* H: a% G! M6 P
    大致上可以确定括号内的内容可以使用([^一-龠].+?)实现匹配。
    ) f' W2 F/ L0 ]2 @2 X7 P7 U: y
    ) e- D1 V2 V' C. Q! g8 z3 `问题是怎么做到匹配双引号中的中文的时候,只匹配括号之前的第一个句子的双引号,即不要匹配成:7 Y7 _) z* d) z" h4 G" Y6 z+ v
    * v( `8 b0 A8 Y' E5 b" ]% i9 n. d
    “故記誦者,學問之舟車也。人有所適也,必資乎舟車,至其地,則捨舟車矣;一步不行者,則亦不用舟車矣。”當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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)
    $ b  h5 _5 U4 g
    2 Z# {  i, B7 W, |$ U9 e# [即:4 b; X* H, ?: J$ W/ p8 A5 d7 v
    只匹配:8 g% m) R" u* i! ]/ a) l+ S; i
    中文中文(non-Chinese character)9 h  c/ N6 _: `5 V

    6 `1 G& }" E. z但避免这种情况:
    9 Z3 K, `- m8 T. U中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)' m% ]7 Q" G& b( X! z
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-1 23:29:12 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 07:52 编辑 * p! J7 H. |2 M( I9 p5 v

      J2 H8 ?( G' b# q1 x! E9 S匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    1. “([^“”]+)”(([^\x{2E81}-\x{FE29}]+))      /* \1匹配中文,\2匹配英文*/
    复制代码
    9 l/ x$ }; w4 u
    或者这样也行:$ H  K7 Q" M# e5 s
    1. “([^“”]+)”(([^()]+))        /* \1匹配中文,\2匹配英文*/
    复制代码

    2 h6 @, H: J: B9 L/ x& r# Y' r8 a3 s: p$ S$ P; m* U
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 07:08:22 | 显示全部楼层
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑 " O' Q' k, q- @; M8 H5 `2 O. P( S
    Mandolin 发表于 2020-8-1 23:29
    2 z1 s" Z, q: o9 B5 i匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    * h8 D3 M: Y. {" ?
    & e' H% P0 Z  _$ f' D' N# S2 X ...
    ; s) L7 `% G0 a& Q) g. Y) i$ s
    多谢回复!$ ?6 x6 @+ [) A4 v
    已经更新了介绍。 2 Q% x; Q, X. ^
    我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到匹配前面的有且只有一句双引号中的中文,而不把更前面的带双引号的中文的第一个双引号,当作双引号的起点。只匹配:
      J4 t8 G# f& I9 h; }* c% w中文中文(non-Chinese character): R+ C9 Q* y% Q
    1 M! @  ~+ D$ z+ J. e
    但避免这种情况:4 a# K9 y' a8 ?' y$ V9 }
    中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)
    4 q0 H  N7 {1 M5 I$ c. c  p( e2 p1 T
    4 L  x% d0 G0 `0 x5 E
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 07:37:52 | 显示全部楼层
    abtxu 发表于 2020-8-2 07:08
    0 T& @. Z9 h9 D; X) P多谢回复!  \; ^7 n4 x) x# L! _0 T
    已经更新了介绍。
    5 p6 ]0 D7 p" Z- \* ~) D$ k0 a我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到 ...

    9 i2 Q) n6 p/ @* _+ T6 y2 z: X7 l9 H嗯,那我就理解对了,上面给的代码能解决你的问题吗?
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-2 07:45:38 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 07:52 编辑
    0 a. M/ O2 K2 I+ h9 Q7 {
    Mandolin 发表于 2020-8-1 23:291 k# O6 g9 Z4 }6 v1 L+ Q" |1 S
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:6 J" f; h9 K/ F% L" H! ]- y+ k

    ) k# g$ ?8 [) R ...
    3 P" S# _, ]3 o4 ~
    多谢分享正则表达式技巧。6 I+ X; m( }1 @* {

    ( {  s) h7 w( K( Z- W2 o. u( B+ i% _7 p+ f5 w* |% ]

    * [0 w- ^) M7 i& ~6 z4 \9 {" M0 }- b8 \6 T+ I; K$ [
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 08:56:29 | 显示全部楼层
    Mandolin 发表于 2020-8-2 07:37
    8 ^- P/ M! P$ X嗯,那我就理解对了,上面给的代码能解决你的问题吗?
    ) L/ x: P  D% e( k+ x' u
    非常感谢!可以解决了!
    + e, `# k0 T7 ^( T$ u可否再拓展一下,把中文引号前面的部分也匹配进去?也就是把以下红色部分也匹配到。( \# g- M8 S% @
    當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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)
    * o6 h; c2 A9 m. `1 o
    * \9 k9 [0 t: w. d观察到 當世哲人 前面可能有引号(其实也可能是句号,也可能没有)
    " H  V- C+ J( L當世哲人! q6 D4 y2 R7 A8 Y+ e
    我试图用[。”]*([^“”。]+)”(([^\x{2E81}-\x{FE29}]+)匹配,但没有成功。
    - m9 D  }. u; T) t7 H& T" v  ?" v6 X& o2 E1 s8 \3 l. n
    0 |) p' Z' V: b: o/ Q3 Z  X% p
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 10:13:12 | 显示全部楼层
    还要匹配前面部分的话,可以试试:3 P- k: R1 N7 z

    , E* m# W% l+ I* u. k4 p' w0 i
    1. [。!”]*([^。!”]*)“([^“”]+)”(([^()]+))    /* \1匹配前面部分,\2匹配引号内中文,\3匹配括号内内容*/
    复制代码
    ) ^' a" [) X& O0 ]' U% }

    2 p& h. X# _5 i4 G" V( m1 a9 N9 k也不一定行,可能需要视情况修改,你多试试,大概用法知道了就可以举一反三
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 10:19:34 | 显示全部楼层
    Mandolin 发表于 2020-8-2 10:13) I0 G6 f: t& \) t
    还要匹配前面部分的话,可以试试:
    + M4 U7 O# q5 b2 n. ~' Z# K8 q
    可以了,非常感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-5-7 18:13 , Processed in 0.022551 second(s), 21 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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