掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 95|回复: 7

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

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

    [LV.8]以坛为家I

    发表于 2020-8-1 22:54:27 | 显示全部楼层 |阅读模式
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑 % Y8 s# \& ?# B8 _& L1 G0 H

    5 w9 S( b2 W% U% L2 o案例:, t4 z. R9 |0 d, q; X0 W% e" H# o+ w, [6 b
    《詩·東山》:“其新孔嘉,其舊如之何?”竊以爲當與《易》此節合觀,舊解未的。二句寫征人心口自語:“當年新婚,愛好甚摯,久睽言旋,不識舊情未一五變否?”乃慮其婦闊别愛移,身疏而心亦遐,不復敦夙好,正所謂“近鄉情更怯”耳。王建《遠將歸》:“遠將歸,勝未别時,在家相見熟,新歸歡不足”;則求金者遠歸之喜詞,與舍軀者生還之疑詞,區以别矣。西方古詩歌或歎喋血餘生,無錢無食,襤褸如丐,千里歸來,則婦初不閒曠,與不知誰何生子累累(Wohlgebrauchte Weiber,/Ungewisse Kinder);或託爲妻詬夫從軍云:“汝去我甚急,頭插鳥羽,獨不慮歸來時身將披龜甲耶!”(Ma di penne,a fuggirmi,il capo adorna;é porterai nel trionfo altero/delta luna ottomana ambe le corna!)雖口角獷鄙,要亦如王弼註所言情事也。( M9 A: w0 V8 f- V, m5 v

    8 Y2 @$ F# q. h8 }9 E) e2 M) z( _0 w需要的匹配形式:  “中文中文”(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), C7 y4 g% C) g: [& s+ j) P( G

    + \. E" r$ a& s$ \/ Q2 ?( g  U& W# ~& A8 O; n" @* e4 o
    大致上可以确定括号内的内容可以使用([^一-龠].+?)实现匹配。( R$ b" L8 x% `; n
    0 d% |" l' r& Y4 p7 Y- |* F
    问题是怎么做到匹配双引号中的中文的时候,只匹配括号之前的第一个句子的双引号,即不要匹配成:( O* ~- {6 _. n  U: }- u
    4 c$ S, m! c. v% J; h1 ^
    “故記誦者,學問之舟車也。人有所適也,必資乎舟車,至其地,則捨舟車矣;一步不行者,則亦不用舟車矣。”當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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)" _( o4 u. B* c( {; b( C  H
    * M' p/ ~/ R- ^$ L' H' J/ i
    即:
    1 L+ T; T. Y( R% @0 J; C2 M# A只匹配:
    ! n: V4 w. g4 e! A9 w中文中文(non-Chinese character)
    3 s9 P7 T* ~5 n- c9 Z( k5 u( Z" k. [4 \  K/ ^! C+ T6 I" N8 k
    但避免这种情况:6 @) a. @# V) C) f& ^% A; h
    中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)
    9 ?( ]. z# a+ j3 _# }. y$ w
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-1 23:29:12 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 07:52 编辑
    2 [- R, D8 S: P+ ]8 Q' `; U
    ( C, _- n( r: {% O, H' J匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    1. “([^“”]+)”(([^\x{2E81}-\x{FE29}]+))      /* \1匹配中文,\2匹配英文*/
    复制代码
    3 B- c/ m2 O: K9 [) v
    或者这样也行:# g- n; }0 t5 [. U: [/ _
    1. “([^“”]+)”(([^()]+))        /* \1匹配中文,\2匹配英文*/
    复制代码

    0 I: D! _( \" W: K
    6 }& D1 \3 b" d9 J6 ^
  • TA的每日心情
    擦汗
    2020-7-2 14:04
  • 签到天数: 364 天

    [LV.8]以坛为家I

     楼主| 发表于 2020-8-2 07:08:22 | 显示全部楼层
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑   V$ @# |6 U% O8 E) S0 I, B
    Mandolin 发表于 2020-8-1 23:29$ q% @# `# [* k! u7 m
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    9 S. \+ i  M$ J" r: c4 v
    - Y" i1 O1 `( g+ C7 A. { ...

    1 |" |" U5 K  b; B0 I" Y) u多谢回复!& D( E  Y' S& J- S. P( I6 X+ [/ H
    已经更新了介绍。
    7 ]7 P( Q; Q. s  \! M: y! `6 b$ B' y我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到匹配前面的有且只有一句双引号中的中文,而不把更前面的带双引号的中文的第一个双引号,当作双引号的起点。只匹配:" i( T) c* @. F
    中文中文(non-Chinese character)
    % c8 e/ d1 O5 s, x+ x) L4 A# u/ Q( ?$ F6 S
    但避免这种情况:
    7 Q7 h6 }' H; A! d9 O  _! n中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)
    2 E6 j5 f; @  p3 B. B) h/ K' |
    7 |; W1 r3 r2 x3 V5 ?7 ~! D8 r* n/ }, `) ]
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 07:37:52 | 显示全部楼层
    abtxu 发表于 2020-8-2 07:08
    ' a3 C* c7 d& g" s% h5 O* J5 L多谢回复!) _# A1 \. E& f# g
    已经更新了介绍。
    ' k/ {4 ^. g3 b我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到 ...
    3 \# j# f7 @: ^4 D" n' K$ ~6 `
    嗯,那我就理解对了,上面给的代码能解决你的问题吗?
  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 59 天

    [LV.5]常住居民I

    发表于 2020-8-2 07:45:38 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 07:52 编辑
    ! b9 w' Z# w" w1 \( Q  T, P
    Mandolin 发表于 2020-8-1 23:29
    6 @' u. K" n% o1 q匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    1 Y4 B  h" k& k# f9 z
    " I$ {) B  P/ f, W( H0 s ...
    / j2 P2 K- o# Y
    多谢分享正则表达式技巧。0 X' q: J1 x) k8 G: f6 J
    ( l% ?# j2 v' d: ?4 G( @
    0 f: f' D+ I* p

    ( K. \% f/ R  K6 [4 ^6 }0 b( u' o. |. _& f
  • TA的每日心情
    擦汗
    2020-7-2 14:04
  • 签到天数: 364 天

    [LV.8]以坛为家I

     楼主| 发表于 2020-8-2 08:56:29 | 显示全部楼层
    Mandolin 发表于 2020-8-2 07:37! ^: X6 ]* |7 T! A  H
    嗯,那我就理解对了,上面给的代码能解决你的问题吗?
    8 A) X# E4 ]/ y$ Q( w( X' k
    非常感谢!可以解决了!2 g, m  q3 s8 ^' @. G: t3 h
    可否再拓展一下,把中文引号前面的部分也匹配进去?也就是把以下红色部分也匹配到。
      E' H. x, o! A3 B當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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)
    3 Y+ R% O  G$ I8 p; m% x6 _/ `/ j
    0 n: y0 `# D6 I1 E观察到 當世哲人 前面可能有引号(其实也可能是句号,也可能没有)( I7 R1 E/ ?; ^* b/ M. L8 A0 q9 W
    當世哲人
    * i' y+ x- \! _& |8 e1 W我试图用[。”]*([^“”。]+)”(([^\x{2E81}-\x{FE29}]+)匹配,但没有成功。
    + g. p4 ~. ?3 N# e" T
    ( u  m5 C" n1 L- H* n1 d# _0 u6 Q8 t- ~& \6 c
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 10:13:12 | 显示全部楼层
    还要匹配前面部分的话,可以试试:
    0 z% e, R! ~! B4 i/ }% t1 M# }' T+ X4 T: d
    1. [。!”]*([^。!”]*)“([^“”]+)”(([^()]+))    /* \1匹配前面部分,\2匹配引号内中文,\3匹配括号内内容*/
    复制代码
    7 b2 i/ D5 R: p- O  n; D
    $ N: K2 M+ d( T" R
    也不一定行,可能需要视情况修改,你多试试,大概用法知道了就可以举一反三
  • TA的每日心情
    擦汗
    2020-7-2 14:04
  • 签到天数: 364 天

    [LV.8]以坛为家I

     楼主| 发表于 2020-8-2 10:19:34 | 显示全部楼层
    Mandolin 发表于 2020-8-2 10:13
    9 B; |1 @" o4 a还要匹配前面部分的话,可以试试:

    3 N) H6 }: s2 W' G可以了,非常感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    顶部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 12:01 , Processed in 0.029795 second(s), 6 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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