掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 96|回复: 7

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

[复制链接]
  • TA的每日心情
    擦汗
    2020-7-2 14:04
  • 签到天数: 364 天

    [LV.8]以坛为家I

    发表于 2020-8-1 22:54:27 | 显示全部楼层 |阅读模式
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑 3 O& |/ @) N+ G' r

      A8 H/ h% Y1 ~& u7 g案例:' v; e8 h8 s- X
    《詩·東山》:“其新孔嘉,其舊如之何?”竊以爲當與《易》此節合觀,舊解未的。二句寫征人心口自語:“當年新婚,愛好甚摯,久睽言旋,不識舊情未一五變否?”乃慮其婦闊别愛移,身疏而心亦遐,不復敦夙好,正所謂“近鄉情更怯”耳。王建《遠將歸》:“遠將歸,勝未别時,在家相見熟,新歸歡不足”;則求金者遠歸之喜詞,與舍軀者生還之疑詞,區以别矣。西方古詩歌或歎喋血餘生,無錢無食,襤褸如丐,千里歸來,則婦初不閒曠,與不知誰何生子累累(Wohlgebrauchte Weiber,/Ungewisse Kinder);或託爲妻詬夫從軍云:“汝去我甚急,頭插鳥羽,獨不慮歸來時身將披龜甲耶!”(Ma di penne,a fuggirmi,il capo adorna;é porterai nel trionfo altero/delta luna ottomana ambe le corna!)雖口角獷鄙,要亦如王弼註所言情事也。
    0 ^  [, b0 \0 s6 |. G( @6 |3 P: l
    " E$ H; v/ i5 H- F# D( Q需要的匹配形式:  “中文中文”(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 b9 i! v: H- f# x5 \- a# D2 s
    % b! T& b) @9 k7 L* x& U
    , s  \  F. e! q+ y1 n大致上可以确定括号内的内容可以使用([^一-龠].+?)实现匹配。
    " `6 `7 z, p/ H: U- j) D0 ]. S" m* G; G0 \7 d3 J
    问题是怎么做到匹配双引号中的中文的时候,只匹配括号之前的第一个句子的双引号,即不要匹配成:# N: X# s7 Y1 ^( K$ E7 z2 s% b

    2 ^$ [+ H8 a& `+ W* F* b* 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)
    6 U  U" ]% D) v# Q0 o, |( n/ T; T$ j( u
    即:
    1 ^. n, f/ b' d* y5 W只匹配:! g- v4 x  z* U# }4 x
    中文中文(non-Chinese character)& U1 G% q4 s/ v0 U1 o7 e( b
    . s! S2 b* _) i
    但避免这种情况:( K1 N* P, A8 b3 ]: r& D; j
    中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)$ b% C0 n  c# m+ j& t5 j+ c) g1 c
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-1 23:29:12 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 07:52 编辑 1 V8 @5 @: Q! \3 C+ }& X

    & ]% H5 Q) d, ^; Y8 N匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    1. “([^“”]+)”(([^\x{2E81}-\x{FE29}]+))      /* \1匹配中文,\2匹配英文*/
    复制代码
    " u5 C$ f6 P+ l: l7 _- q; F" k6 ~
    或者这样也行:! l4 k+ m" y  F' ~  G
    1. “([^“”]+)”(([^()]+))        /* \1匹配中文,\2匹配英文*/
    复制代码
    6 _1 n0 ]1 K  G- T
    # A/ K; I9 L7 a4 @* C$ J
  • TA的每日心情
    擦汗
    2020-7-2 14:04
  • 签到天数: 364 天

    [LV.8]以坛为家I

     楼主| 发表于 2020-8-2 07:08:22 | 显示全部楼层
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑 6 c; P- h! O# i2 e* [6 Q9 F  i2 v
    Mandolin 发表于 2020-8-1 23:299 B, E0 y$ s# T( b8 n+ V
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:2 _& {% S# p! Y9 Q8 C: I/ `- W

    # \. ?+ z, f2 C) x* w ...

    9 Z# m; Q4 E! _% J1 f多谢回复!: c6 j; ?- K# V/ b% Q0 u$ }
    已经更新了介绍。 3 i. N* @( S! z7 a1 S0 l% T
    我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到匹配前面的有且只有一句双引号中的中文,而不把更前面的带双引号的中文的第一个双引号,当作双引号的起点。只匹配:
    ' x  b! N0 I. a- o0 t4 D中文中文(non-Chinese character)
    4 Q( B+ f' f5 s$ O3 V( l2 H7 b" X7 M7 p5 O- n5 @- e+ g1 S
    但避免这种情况:& o5 |* k/ G7 x2 Q: o' s
    中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)
    7 ?9 \8 {8 k$ ]6 s% g
    4 c7 o4 d( |& \: g3 L
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 07:37:52 | 显示全部楼层
    abtxu 发表于 2020-8-2 07:085 m- j6 @/ @( N6 n/ N
    多谢回复!
    . o  _! e. L! \& f5 W  ^已经更新了介绍。 2 j9 I# R# M( h  s6 I; _+ [" `
    我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到 ...
    ! z- C( R  ?* o. h" T. }0 B; r4 U( L
    嗯,那我就理解对了,上面给的代码能解决你的问题吗?
  • TA的每日心情
    开心
    13 小时前
  • 签到天数: 59 天

    [LV.5]常住居民I

    发表于 2020-8-2 07:45:38 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 07:52 编辑 ) O, b' y+ y! Q0 U' `6 @7 [
    Mandolin 发表于 2020-8-1 23:29
    1 r8 D- o" ^5 \& |8 X# c匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:* S! A) N) d( b$ t6 v# Q' C$ H' k

    & i: [% K, ^  x% U. F- O3 \2 n ...
    4 C1 u' F6 d+ E5 Q
    多谢分享正则表达式技巧。" g# r% e: q0 ?  \$ ^$ x4 F1 ?
    & L/ J0 ~. a# R, v% `

    0 Z/ l- }5 g) M1 x  J1 B+ @6 \- A% u  [" N' ?! f0 a" w

    . e% m- b9 c4 C  s9 n7 B/ `0 P4 x
  • TA的每日心情
    擦汗
    2020-7-2 14:04
  • 签到天数: 364 天

    [LV.8]以坛为家I

     楼主| 发表于 2020-8-2 08:56:29 | 显示全部楼层
    Mandolin 发表于 2020-8-2 07:37
    ( L- h+ r, G3 @嗯,那我就理解对了,上面给的代码能解决你的问题吗?
    ( B9 Q3 E" H# H) @. `$ n4 i
    非常感谢!可以解决了!
    $ L5 y$ T8 W& [: K& c2 d可否再拓展一下,把中文引号前面的部分也匹配进去?也就是把以下红色部分也匹配到。" \* P- `5 w! A2 j5 E% 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)
    : {& L! n# I6 j0 Y5 w. y& U/ I$ ^# R2 O' ]
    观察到 當世哲人 前面可能有引号(其实也可能是句号,也可能没有)
    . x8 ^1 H6 r! w; A" [當世哲人; F# [6 y6 y8 H. v2 v
    我试图用[。”]*([^“”。]+)”(([^\x{2E81}-\x{FE29}]+)匹配,但没有成功。# R5 [' o9 a, ?" V$ A9 x; e# R: n; L

    6 V$ ~9 f2 t( _: ~$ B2 o1 N
    + z- B2 d/ h% s* r; g# ^9 m
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 10:13:12 | 显示全部楼层
    还要匹配前面部分的话,可以试试:
    % I0 l. Q7 B. D1 m  ?( r6 W- ^
    , N4 E. }6 I, w+ W0 y
    1. [。!”]*([^。!”]*)“([^“”]+)”(([^()]+))    /* \1匹配前面部分,\2匹配引号内中文,\3匹配括号内内容*/
    复制代码
    - M  G+ j2 k3 D/ V) I

    ) y: X9 U" y" L7 k- q( X5 V* V也不一定行,可能需要视情况修改,你多试试,大概用法知道了就可以举一反三
  • TA的每日心情
    擦汗
    2020-7-2 14:04
  • 签到天数: 364 天

    [LV.8]以坛为家I

     楼主| 发表于 2020-8-2 10:19:34 | 显示全部楼层
    Mandolin 发表于 2020-8-2 10:13% W4 @; o! D  q' r
    还要匹配前面部分的话,可以试试:
    * ^1 R9 D: u* E" G0 n
    可以了,非常感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    顶部qrcode底部
    关注公众号送论坛充值码
    关注微信公众平台
    关注微信公众号 pdawiki,获取邀请码,看文抢积分,抽奖得浮云! Follow our Wechat official account "pdawiki", get invitation codes, and play the lottery to earn points (积分)!

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

    GMT+8, 2020-8-15 13:47 , Processed in 0.037713 second(s), 6 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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