掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 735|回复: 7

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

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

    [LV.9]以坛为家II

    发表于 2020-8-1 22:54:27 | 显示全部楼层 |阅读模式
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑 ( ^2 x' ~9 o' Y3 k1 u
    2 H; t1 `/ B5 z4 s  Z, \% X/ O
    案例:
    $ _( ]9 e' H, I! z《詩·東山》:“其新孔嘉,其舊如之何?”竊以爲當與《易》此節合觀,舊解未的。二句寫征人心口自語:“當年新婚,愛好甚摯,久睽言旋,不識舊情未一五變否?”乃慮其婦闊别愛移,身疏而心亦遐,不復敦夙好,正所謂“近鄉情更怯”耳。王建《遠將歸》:“遠將歸,勝未别時,在家相見熟,新歸歡不足”;則求金者遠歸之喜詞,與舍軀者生還之疑詞,區以别矣。西方古詩歌或歎喋血餘生,無錢無食,襤褸如丐,千里歸來,則婦初不閒曠,與不知誰何生子累累(Wohlgebrauchte Weiber,/Ungewisse Kinder);或託爲妻詬夫從軍云:“汝去我甚急,頭插鳥羽,獨不慮歸來時身將披龜甲耶!”(Ma di penne,a fuggirmi,il capo adorna;é porterai nel trionfo altero/delta luna ottomana ambe le corna!)雖口角獷鄙,要亦如王弼註所言情事也。( l% b  g7 I' z7 V2 Z# \5 Z
    # k" z# e  q  D+ S
    需要的匹配形式:  “中文中文”(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)5 c% ?" O% x' }& f

    * N- n9 M4 P+ g7 h, B3 ?* x. D0 K& c4 T4 w3 w$ O2 @( f; d3 i8 s
    大致上可以确定括号内的内容可以使用([^一-龠].+?)实现匹配。4 |2 m/ I$ z5 V( ]2 [, L6 z
    & V0 Z1 c1 X' k4 J- B
    问题是怎么做到匹配双引号中的中文的时候,只匹配括号之前的第一个句子的双引号,即不要匹配成:
    ) a% w5 N5 X0 w# O! [) _" p- T, y/ o5 P3 I
    “故記誦者,學問之舟車也。人有所適也,必資乎舟車,至其地,則捨舟車矣;一步不行者,則亦不用舟車矣。”當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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)
    , a* j9 }9 N, Y, O/ o
    3 e: |! q* Y. F: \6 N即:6 R0 V6 `: @9 G, c/ i6 d; R
    只匹配:
    / K8 [- _5 U  a4 I& X7 U中文中文(non-Chinese character)+ j* T$ C3 f/ w! t' S' G

    : I2 D* B, ~! q( g  h% O) o( X6 E( \但避免这种情况:
    7 g* @. C3 y+ o" N, `% I! X中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character); z$ U  @# ~6 o$ M+ d
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-1 23:29:12 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 07:52 编辑
    8 h: q/ h. n# O- J" \) J5 u. X4 w3 T/ v% I, u% ~8 x
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    1. “([^“”]+)”(([^\x{2E81}-\x{FE29}]+))      /* \1匹配中文,\2匹配英文*/
    复制代码
    % ~. b) D! W) P1 p) u9 |- z
    或者这样也行:
    9 K% T  d, F" W
    1. “([^“”]+)”(([^()]+))        /* \1匹配中文,\2匹配英文*/
    复制代码

    # q! i) v& Q" G- ?9 N# \, H
    : v7 Q7 O/ ]6 _
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 07:08:22 | 显示全部楼层
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑 " _% h, ?) l1 O. E& T
    Mandolin 发表于 2020-8-1 23:29! r# V% n( I5 W% d# {
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:( q- k4 }6 `' s( Y* ^! h* U: [

    * f- L" ?. E9 \0 L ...
    9 W* R  P4 T4 m. ]$ e! M2 S
    多谢回复!
    $ r/ D& p, ~5 I/ ?  A2 @已经更新了介绍。 7 Q* N6 z4 c, M
    我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到匹配前面的有且只有一句双引号中的中文,而不把更前面的带双引号的中文的第一个双引号,当作双引号的起点。只匹配:
    $ S& x+ S0 }: _$ d$ Z中文中文(non-Chinese character)
    " k# O( P( a6 z) u. X) p$ a" O  b1 X  z4 {; X0 S
    但避免这种情况:
    9 e) G# @1 Y/ r中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character), q( e! I* P; [( _

    * q* A  N) b4 S8 _7 m& s
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 07:37:52 | 显示全部楼层
    abtxu 发表于 2020-8-2 07:08
    , n: J- {& A+ j& ]多谢回复!
    ; F3 d8 P) Z7 N1 T9 m已经更新了介绍。
    9 ~% y8 P+ F' T4 c* ~6 p我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到 ...

    4 v( Z1 u- a" V8 X, M1 y( W嗯,那我就理解对了,上面给的代码能解决你的问题吗?
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-2 07:45:38 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 07:52 编辑
    9 G, Y5 |) D+ g3 _. f, P3 c
    Mandolin 发表于 2020-8-1 23:29
    , Q2 v) x: ?. h2 }$ p7 y' g匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:- V- x+ ~; t- b- L! j! p+ ~4 `

    ! y$ l* K& X# [/ R9 h0 S/ m ...
    7 }  g, y. n# F5 Y. T5 H
    多谢分享正则表达式技巧。2 W" D+ o" E: l- |# d3 Q' W1 I

    ; L! H0 ]: i: v& f5 d( K
    * K" B0 e' W1 J6 q
    ; H6 y# T/ J0 F' w9 g8 [: M; Z1 [/ C
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 08:56:29 | 显示全部楼层
    Mandolin 发表于 2020-8-2 07:379 J" s* F7 M4 g" u  }( e5 o) t
    嗯,那我就理解对了,上面给的代码能解决你的问题吗?

    ! I& U' i+ E" J( ]: ]非常感谢!可以解决了!
      d' O9 V! {/ R9 x可否再拓展一下,把中文引号前面的部分也匹配进去?也就是把以下红色部分也匹配到。
    0 l$ c4 }, B* p* N  y1 o: x9 |& t當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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 ?( m0 B7 Z' R* h. N

    ) E, G3 I% b% _% r& e观察到 當世哲人 前面可能有引号(其实也可能是句号,也可能没有)
    6 ?% X) z- L* L# A8 n當世哲人
      a2 z, G# ~1 Z: n+ c& \1 I- `" I我试图用[。”]*([^“”。]+)”(([^\x{2E81}-\x{FE29}]+)匹配,但没有成功。7 G6 ~; d" `0 P: z8 m) r
    4 ?/ s1 Z$ `% E; K0 q0 n/ d

    6 S3 {4 z% g- ]7 l# B0 ^
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 10:13:12 | 显示全部楼层
    还要匹配前面部分的话,可以试试:4 L7 x" K1 J  U
    / G9 t% s$ m# I; e. N7 A
    1. [。!”]*([^。!”]*)“([^“”]+)”(([^()]+))    /* \1匹配前面部分,\2匹配引号内中文,\3匹配括号内内容*/
    复制代码
    ! D( P, f" |- u& |: h2 A

    $ r2 t- D) E9 @; B# ]也不一定行,可能需要视情况修改,你多试试,大概用法知道了就可以举一反三
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 10:19:34 | 显示全部楼层
    Mandolin 发表于 2020-8-2 10:13
    2 F, |/ D# \+ A0 _7 m3 z8 b还要匹配前面部分的话,可以试试:

    8 K3 u/ C- o& H' _4 v& Q- X可以了,非常感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-6-4 08:11 , Processed in 0.041398 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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