掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 721|回复: 7

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

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

    [LV.9]以坛为家II

    发表于 2020-8-1 22:54:27 | 显示全部楼层 |阅读模式
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑
    4 L, ]1 X) y! ^
    9 q" l6 b7 o4 Y; `9 P案例:
    1 |* ^9 N$ @  M' f( q《詩·東山》:“其新孔嘉,其舊如之何?”竊以爲當與《易》此節合觀,舊解未的。二句寫征人心口自語:“當年新婚,愛好甚摯,久睽言旋,不識舊情未一五變否?”乃慮其婦闊别愛移,身疏而心亦遐,不復敦夙好,正所謂“近鄉情更怯”耳。王建《遠將歸》:“遠將歸,勝未别時,在家相見熟,新歸歡不足”;則求金者遠歸之喜詞,與舍軀者生還之疑詞,區以别矣。西方古詩歌或歎喋血餘生,無錢無食,襤褸如丐,千里歸來,則婦初不閒曠,與不知誰何生子累累(Wohlgebrauchte Weiber,/Ungewisse Kinder);或託爲妻詬夫從軍云:“汝去我甚急,頭插鳥羽,獨不慮歸來時身將披龜甲耶!”(Ma di penne,a fuggirmi,il capo adorna;é porterai nel trionfo altero/delta luna ottomana ambe le corna!)雖口角獷鄙,要亦如王弼註所言情事也。
    9 s* y  o% X! e' ^( Q
    1 i, P2 i. N" O" x需要的匹配形式:  “中文中文”(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)
    / i: t% l( t4 }2 G
    - ]3 s5 a( b4 @7 W4 N
    8 p$ F2 o* y+ i0 k1 ^大致上可以确定括号内的内容可以使用([^一-龠].+?)实现匹配。
    ; M. w5 y+ j4 P- v3 G4 }& _
    5 W* C9 `3 p* v7 m1 W7 X问题是怎么做到匹配双引号中的中文的时候,只匹配括号之前的第一个句子的双引号,即不要匹配成:
    4 c5 ~) Z$ ^7 r# E9 f9 ^4 U* w2 ^1 G  l  z
    “故記誦者,學問之舟車也。人有所適也,必資乎舟車,至其地,則捨舟車矣;一步不行者,則亦不用舟車矣。”當世哲人維德根斯坦謂:“倘明吾旨,則由吾言而更上陟焉,吾言遂無復意義,亦猶緣梯而升,盡級登高,則必捨梯也”(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)) h$ u( ~: v# x; Y+ c) S

    8 D+ s# c) D# v; l即:4 D$ x0 c/ N; D) N, O+ L
    只匹配:
    ) `& G7 l& [( K8 U8 \中文中文(non-Chinese character)
    - F8 r+ e& k' c8 ~/ e, x
    8 L: [! z0 e( s1 M. D# `$ ?- V! Y但避免这种情况:
    2 Y3 Y  s' ]1 i& ]' u: `中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character); r: I- R% z% ?1 e
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-1 23:29:12 | 显示全部楼层
    本帖最后由 Mandolin 于 2020-8-2 07:52 编辑
    ( Y5 E( w* N3 }9 l4 M. Q. m% p7 H4 f8 H: k, ?+ h$ o
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:
    1. “([^“”]+)”(([^\x{2E81}-\x{FE29}]+))      /* \1匹配中文,\2匹配英文*/
    复制代码
    # m9 K5 O7 S7 q2 _  f
    或者这样也行:: k" N0 e+ V# b- R
    1. “([^“”]+)”(([^()]+))        /* \1匹配中文,\2匹配英文*/
    复制代码

    " P- u' g( V1 U4 T' A
    ' R! s: i9 B; Y& {
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 07:08:22 | 显示全部楼层
    本帖最后由 abtxu 于 2020-8-2 07:10 编辑
    " t0 y6 [+ o& D3 b' U+ @
    Mandolin 发表于 2020-8-1 23:29
    ' O- A. K0 x2 X匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:, Q" P) n0 G5 x" C4 H! F

    ) I7 x+ K$ N: A5 y ...

    # p8 g0 a/ W, ^多谢回复!
    , w& A' t1 _4 q/ q5 I  W  i0 ]% N已经更新了介绍。 & Q4 R# F  P# [' n/ p' i
    我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到匹配前面的有且只有一句双引号中的中文,而不把更前面的带双引号的中文的第一个双引号,当作双引号的起点。只匹配:
    & ~4 i. E  P, h+ m( v8 \% }: B中文中文(non-Chinese character)
    / f  v' r  M  G* @
    8 d. A8 m6 T( |但避免这种情况:
    5 @8 s) |  i& V; `& b中文中文中文:中文中文”。中文中文中文:“中文中文(non-Chinese character)
    ' B  M$ _) T" r% \% v
    ) C7 ~0 t9 c' A1 e1 p
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 07:37:52 | 显示全部楼层
    abtxu 发表于 2020-8-2 07:081 I, t" g9 ?* m* N" e" {! ~
    多谢回复!
    0 l7 v6 \% M* N- d& _! Z8 F已经更新了介绍。 % \+ L* o2 a/ \7 D% z: [/ x
    我的问题可能是一个思路的问题:先确定了括号中的外文的匹配方式,怎么做到 ...
      I9 r* V# P2 ]* H! o( B; ^
    嗯,那我就理解对了,上面给的代码能解决你的问题吗?
  • TA的每日心情
    无聊
    2022-7-21 15:56
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2020-8-2 07:45:38 | 显示全部楼层
    本帖最后由 wjl 于 2020-8-2 07:52 编辑 0 h6 U9 M% a% E) O/ W9 \% ?
    Mandolin 发表于 2020-8-1 23:29: ]6 t7 H9 L% ]$ V. [6 e% j- z) j
    匹配带英文翻译并且前面是引号标注的中文?没有完全明白你的意思,按我理解你是要这样?:" F- Z! n2 J+ L6 x: y9 B

    3 B: U$ m; Z; P' h1 A/ _) u! d ...
    + u7 A) w; C& ?4 f* F/ a6 \
    多谢分享正则表达式技巧。
    8 b) c4 Q; j/ y( D) y
    8 C. z1 R! {# n( }" n$ O+ W$ P% `. L. y; \0 Q( A; D; K$ s+ I1 }
    - z$ {7 O: H, S. u% o4 e6 G
    0 R( q4 R* @0 P9 B: J0 r2 ^; Z% d. R& w
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 08:56:29 | 显示全部楼层
    Mandolin 发表于 2020-8-2 07:37
    & i: `% B7 [' ~; Y8 ]4 u/ M" v嗯,那我就理解对了,上面给的代码能解决你的问题吗?

    5 U- o% U! o2 W) z非常感谢!可以解决了!4 N$ e7 Z% r  M' I1 k/ x
    可否再拓展一下,把中文引号前面的部分也匹配进去?也就是把以下红色部分也匹配到。
    ; j) v, i1 r! 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)
    5 G# X* k/ f( k" O; w9 ]& s6 Q/ V: T& C- X8 V! f% ~' C2 J  T5 ]
    观察到 當世哲人 前面可能有引号(其实也可能是句号,也可能没有)
    % @9 m! J2 s; p  _( l; `當世哲人8 o) K4 l- m. w
    我试图用[。”]*([^“”。]+)”(([^\x{2E81}-\x{FE29}]+)匹配,但没有成功。! _8 d% \: h  {6 H* e

    # y# |0 E) V/ a* e% `3 C, p) t3 Y  S) c0 \0 [4 g1 X
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-8-2 10:13:12 | 显示全部楼层
    还要匹配前面部分的话,可以试试:9 C! e; N; D/ N
    / L) r) l; b4 ^
    1. [。!”]*([^。!”]*)“([^“”]+)”(([^()]+))    /* \1匹配前面部分,\2匹配引号内中文,\3匹配括号内内容*/
    复制代码
    , |7 c4 n3 a2 j2 Q

    ' o, t5 H  G' D2 E也不一定行,可能需要视情况修改,你多试试,大概用法知道了就可以举一反三
  • TA的每日心情
    慵懒
    2021-11-4 14:19
  • 签到天数: 395 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-8-2 10:19:34 | 显示全部楼层
    Mandolin 发表于 2020-8-2 10:13
    / g/ }# Y  f6 {  {4 U. T- D还要匹配前面部分的话,可以试试:

    1 Q1 F6 f( j* ^可以了,非常感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-27 12:10 , Processed in 0.064272 second(s), 8 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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