掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 720|回复: 7

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

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

    [LV.9]以坛为家II

    发表于 2020-8-1 22:54:27 | 显示全部楼层 |阅读模式
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑
    8 M* A1 |8 E! S. k. @# G6 P, O8 l: _3 D5 w- o. k# X; n& R
    案例:0 n) s3 L. F" H) D, ^$ C) H
    《詩·東山》:“其新孔嘉,其舊如之何?”竊以爲當與《易》此節合觀,舊解未的。二句寫征人心口自語:“當年新婚,愛好甚摯,久睽言旋,不識舊情未一五變否?”乃慮其婦闊别愛移,身疏而心亦遐,不復敦夙好,正所謂“近鄉情更怯”耳。王建《遠將歸》:“遠將歸,勝未别時,在家相見熟,新歸歡不足”;則求金者遠歸之喜詞,與舍軀者生還之疑詞,區以别矣。西方古詩歌或歎喋血餘生,無錢無食,襤褸如丐,千里歸來,則婦初不閒曠,與不知誰何生子累累(Wohlgebrauchte Weiber,/Ungewisse Kinder);或託爲妻詬夫從軍云:“汝去我甚急,頭插鳥羽,獨不慮歸來時身將披龜甲耶!”(Ma di penne,a fuggirmi,il capo adorna;é porterai nel trionfo altero/delta luna ottomana ambe le corna!)雖口角獷鄙,要亦如王弼註所言情事也。& O2 A7 V' C2 R" G, v) J" Z1 \2 k
    8 D/ j3 F, A- d: @+ I( 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)
    : P! y  n+ B+ P& M: u9 q  w  V4 z1 F+ l4 @6 g- M4 j9 c

    . m. L2 b- b+ G& ^% H+ K7 X大致上可以确定括号内的内容可以使用([^一-龠].+?)实现匹配。9 U1 t$ y% I, F6 C8 p7 {$ W4 k
    9 I1 w) \! g0 J
    问题是怎么做到匹配双引号中的中文的时候,只匹配括号之前的第一个句子的双引号,即不要匹配成:
    0 r3 T; v, V+ G& L3 s! w; |; x
    0 U. D" @2 s; Y! k7 {  h“故記誦者,學問之舟車也。人有所適也,必資乎舟車,至其地,則捨舟車矣;一步不行者,則亦不用舟車矣。”當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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$ ~) n& T# n) k8 a- s4 ?4 E! w* ^' W2 ]. D) x. ~( u2 q0 U/ M0 u
    即:/ N; {" ~1 U. l  @0 R
    只匹配:
    3 o0 f( y8 X' r6 g中文中文(non-Chinese character)
    9 P  T# m# V+ I4 {" F4 @, m* E
    . [/ A4 o8 P( |但避免这种情况:' X  N3 p$ m4 i0 P9 z
    中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)1 b6 R  ?& I8 R; L
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-1 23:29:12 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 07:52 编辑 " t! B, [1 g8 O* s. I8 x
    # R' F+ y8 p! L; u, y$ X# k0 e
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    1. “([^“”]+)”(([^\x{2E81}-\x{FE29}]+))      /* \1匹配中文,\2匹配英文*/
    复制代码
    $ G" p/ U+ s" ~; {2 ?! C& v9 }
    或者这样也行:
    2 i4 j( I4 X, h
    1. “([^“”]+)”(([^()]+))        /* \1匹配中文,\2匹配英文*/
    复制代码

    ! \! W, \! Q- L, ?2 n
    7 x1 R4 t7 r! K" s+ @8 ^! }
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 07:08:22 | 显示全部楼层
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑
    8 D3 b. w. S9 Z# ]* o) q
    Mandolin 发表于 2020-8-1 23:29
    ; X% x" w0 [/ g  @1 Z匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    0 q2 O2 K% Q1 Q+ ?2 O
    , t: Z/ ?9 \' B  P8 A! w ...

    * n' B" u7 k0 X! Z5 C2 p多谢回复!
    ) x. A; d, H( E' Q3 a* \已经更新了介绍。
    , e9 O6 V, j. r) I  S( D我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到匹配前面的有且只有一句双引号中的中文,而不把更前面的带双引号的中文的第一个双引号,当作双引号的起点。只匹配:$ O4 K6 r# G' V7 H
    中文中文(non-Chinese character)
    9 g$ [; U$ \5 n' e' V( y9 k% E) I' B0 G/ [3 Z
    但避免这种情况:
    4 H5 F% {8 D; `4 A中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)
    . Y7 T' n, ~1 D  j9 L# w" }6 y9 I& N7 F' Y$ }' C$ t
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 07:37:52 | 显示全部楼层
    abtxu 发表于 2020-8-2 07:081 f7 d. t- |& l1 P
    多谢回复!
    $ ?* n! C3 g; E' ]已经更新了介绍。 5 v* s6 u/ l7 V5 V0 G7 S* e
    我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到 ...
    4 H8 N% J  O. r0 `/ L$ l
    嗯,那我就理解对了,上面给的代码能解决你的问题吗?
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-2 07:45:38 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 07:52 编辑 1 L$ M& F! D/ p8 k) a3 T
    Mandolin 发表于 2020-8-1 23:29. g3 U6 v: {$ ]( V0 G/ V4 x' z9 k
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    + m% V1 h6 U1 }# T
    $ X& t+ }/ H8 ?4 i& G ...

    ! k( @0 ]+ W2 L: W& t4 V+ ^多谢分享正则表达式技巧。
    % {, W0 ]9 g1 o) k  P, r5 \
    $ `% I! F, s8 v* |0 s+ A3 G
    6 y% X7 v5 f1 b7 ~7 e
    + Q1 n' |" T2 x& q+ R% W  W
    3 q( n, f, t5 k% ^. `. [9 N
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 08:56:29 | 显示全部楼层
    Mandolin 发表于 2020-8-2 07:37+ ~% V% F# e; \
    嗯,那我就理解对了,上面给的代码能解决你的问题吗?

    8 z5 z9 |, n8 F0 i非常感谢!可以解决了!2 g# x4 B* s- j2 }6 \7 ^
    可否再拓展一下,把中文引号前面的部分也匹配进去?也就是把以下红色部分也匹配到。
    5 Z% ~  X" ~9 B/ O, y3 H5 r  X當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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)
    " M" D: ]6 N2 A6 }! @% X, v, ]" a8 ^4 N0 C* T7 R
    观察到 當世哲人 前面可能有引号(其实也可能是句号,也可能没有)
    - |) W! G+ m) I2 V* f' {( y9 V當世哲人
    * E( e) w" Z. D6 x. R$ S我试图用[。”]*([^“”。]+)”(([^\x{2E81}-\x{FE29}]+)匹配,但没有成功。
      x5 u5 ~5 b2 b5 _# N& z/ ~0 W0 A8 h5 u+ [; J
    5 e* X! A9 Y$ F) }3 L3 J* O
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 10:13:12 | 显示全部楼层
    还要匹配前面部分的话,可以试试:2 }& r7 ?8 X4 {% N2 W! ]# j4 E

    / {/ N4 Q' x4 R2 W' O+ K& d/ @
    1. [。!”]*([^。!”]*)“([^“”]+)”(([^()]+))    /* \1匹配前面部分,\2匹配引号内中文,\3匹配括号内内容*/
    复制代码
    5 W  j+ B* i  V! m
    7 o0 q8 k; z  y" Y' l
    也不一定行,可能需要视情况修改,你多试试,大概用法知道了就可以举一反三
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 10:19:34 | 显示全部楼层
    Mandolin 发表于 2020-8-2 10:13
    # o& c# w% F/ v1 \, ~0 F& o# [还要匹配前面部分的话,可以试试:

    9 _% E! y" w5 {! b. I可以了,非常感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-27 11:04 , Processed in 0.035716 second(s), 8 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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