掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: preachers

[求助] [完美解决,感谢simonfire以及热心回答的吧友大神] 真心求.....

[复制链接]
  • TA的每日心情
    奋斗
    2022-6-1 19:02
  • 签到天数: 377 天

    [LV.9]以坛为家II

    发表于 2018-11-26 11:20:08 来自手机 | 显示全部楼层
    本帖最后由 simonfire 于 2018-11-26 11:24 编辑
    3 X1 D" e/ ]$ Q$ p) K( p8 x
    preachers 发表于 2018-11-26 11:05! |6 }5 c. l+ {% }& u. X7 Q
    真没想到emeditor还可以调用宏,那我要开始学js了。. f. \( t/ l' Q9 b4 I% r
    就是想问一下,这个宏可不可以做成交互式的?就是运 ...

    ) U% n) m4 r/ I5 C* z  H1 @8 Q( m可以,类似于下面这样
    1. var insert=prompt("第一次匹配限定","请输入")
    复制代码
    6 D# i3 u/ F+ n6 ~
    * x/ X; m6 n! O( N4 X* U

    点评

    太感谢了!  发表于 2018-11-26 11:29

    评分

    2

    查看全部评分

  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    发表于 2018-11-26 11:54:01 | 显示全部楼层
    本帖最后由 mikeee 于 2018-11-26 11:59 编辑 9 ^  ?0 u, D# O* F- @
    1. ...
      3 c3 J% a* E8 T' S! H/ K
    2. <span class="abc"> a b <i>i1</i> <b>b1</b> c </span> <span class="abc">  c d <i>i</i>; <b>b</b> e  </span> <span class="abc"> f g k </span>
        O5 G/ [2 p1 H
    3. ...
    复制代码
    ! _, h5 S# n2 {: ^. ^/ F" K4 H+ [
    2 w$ i! W7 Q0 c) M
    你要的是不是怎么拿到(匹配到)中间那个
    1. <span  ...> ...  </span>
    复制代码
    ( t8 t( G4 t1 K- }; H- F
    感觉楼主好像在问一个问题,然后又说你如果解决了这个问题的话却并没有解决我的真正问题
  • TA的每日心情
    慵懒
    2023-3-27 00:18
  • 签到天数: 606 天

    [LV.9]以坛为家II

     楼主| 发表于 2018-11-26 13:37:49 | 显示全部楼层
    mikeee 发表于 2018-11-26 11:54
    2 a8 B9 P% ~1 z0 f" \  X你要的是不是怎么拿到(匹配到)中间那个
    4 C4 e& q2 \! O+ A, `感觉楼主好像在问一个问题,然后又说你如果解决了这个问题的话 ...

    0 Q' Q8 h$ _) l6 ~$ t" {嗯,我想了想,这就好比是“鱼”和“渔”的区别,我来问问题想要寻找一种全新的捕鱼方式,但是光说的话不直观,所以我就得举个例子,就好比说我现在要抓这条鱼,然后你用原本大家捕鱼的方式,虽然绕了些弯子最终还是把鱼抓到了,但是我要的不是这条鱼而是一种全新的方法。我这样说你能理解吗?
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    发表于 2018-11-26 21:05:59 | 显示全部楼层
    本帖最后由 mikeee 于 2018-11-26 21:28 编辑   h2 A( o: N: B0 j8 ?) b
    preachers 发表于 2018-11-26 13:37
    7 o# ^7 ^7 {5 J$ n2 ?5 _  O2 l. ^; [嗯,我想了想,这就好比是“鱼”和“渔”的区别,我来问问题想要寻找一种全新的捕鱼方式,但是光说的话不 ...

    , I# j8 h9 S; W6 i/ }$ M6 w% ?: j貌似无需整 javascript。不过楼主没有放出真正的问题,所以还是只能猜测而已。
    7 H6 o4 r5 D6 J7 \" x! w
    2 K' n9 [  ]1 i$ N+ W我在一个群里求得的答案,可以匹配第二个 <span> </span>/ }; g& _) L' p  X4 |8 G) ~& B
    1. <span class="abc">(((?!</span>).)*</i>; <b>.*?)</span>
    复制代码
    ( S; B% n; m# S; l- l( U/ e) a

    3 q+ J- \& w# b. y  [3 Y! ?; Q答案的核心在 nagative lookbehind (?!</span>).)* 上,可以排除匹配 </span>。楼主或吧友对纯正则方案感兴趣的话可以折腾一下。/ x& g- Z& t$ ]! @9 y
    Notepad++ 截屏:
    ' ~; O* ?5 {: f  _; A
    1 o* p. F& Z8 Q% B9 m& D
    % t/ c8 i6 z0 O. e

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    评分

    1

    查看全部评分

  • TA的每日心情
    慵懒
    2023-3-27 00:18
  • 签到天数: 606 天

    [LV.9]以坛为家II

     楼主| 发表于 2018-11-27 03:10:47 | 显示全部楼层
    本帖最后由 preachers 于 2018-11-27 03:11 编辑 3 ]$ @0 k5 m2 R. k+ u
    mikeee 发表于 2018-11-26 21:05( _; Y) \5 Y# w3 W/ G0 [* b
    貌似无需整 javascript。不过楼主没有放出真正的问题,所以还是只能猜测而已。
    7 Q0 C) f6 b& w; L- m* |3 p0 a) h' l
    我在一个群里求得的答案, ...

    2 d1 \4 ^' T/ Z' e好吧,既然你这么热衷于纯正则方案,我想说,之前我花了很多时间去刷正则那个官方(不知道算不算是官方)文档,又来论坛搜索相关技术讨论,发现这种结构根本就已经超出正则文法范围。我给你抽象一个简单的例子
    % F+ G1 K1 M: v) W' z) [
    1. asdgzu1asdhui2sdhui31asdhuia2asdhuiTzzzzzz1zzzzzz2zzzzz31zzzzzz1zzzzz2zzzzzzzz31zzzzz1zzzzzzz2zzzzzz3Tasdhui1asdhui2ashdui31ashdui2asdhui31asdhui2ad
    复制代码
    3 o: s2 T  b' @# _) l9 @+ R2 |$ K
    目的是用一个正则式,同时满足匹配两个大写T之间的范围以及其中所有的[1,2,3]。然后用另一个正则式把[1,2,3]换成[A,B,C]。我还想说,我这只是个简短的例子,我可以在两个T之间写出无数个[1,2,3],所以不要在式子中把所有的[1,2,3]的结构从头到尾写一遍,而要通过规律来实现多次匹配。你试试看能不能做到?
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    发表于 2018-11-27 18:18:59 | 显示全部楼层
    本帖最后由 mikeee 于 2018-11-27 18:28 编辑 : k0 b* S/ t) d% @9 D
    preachers 发表于 2018-11-27 03:10
    9 V8 Q: F) w0 W% L好吧,既然你这么热衷于纯正则方案,我想说,之前我花了很多时间去刷正则那个官方(不知道算不算是官方) ...

    + U# t8 o( }7 x! k4 Q不完美,但至少证实正则是可以做的,基本想法来自 https://www.rexegg.com/regex-trick-conditional-replacement.html,比较蹩脚的二次替代。如果正则引擎支持不定长逆序环视的话可能会简单些。我对这个问题感兴趣,因为之前碰到过类似的困扰我的问题。
    : j9 _$ Q$ S! E! `' x; b$ D3 n) Q0 |8 @- ~( C; E2 ]
    尾部加:1=A:2=B:3=C
    6 H' f0 |7 ^2 ]
    1. asdgzu1asdhui2sdhui31asdhuia2asdhuiTzzzzzz1zzzzzz2zzzzz31zzzzzz1zzzzz2zzzzzzzz31zzzzz1zzzzzzz2zzzzzz3Tasdhui1asdhui2ashdui31ashdui2asdhui31asdhui2ad
      + _+ o. y! |* h3 t# x" a

    2. , C  D, `7 G0 ^8 |6 D
    3. :1=A:2=B:3=C
    复制代码
    9 U6 b8 k) Y' I7 z' g- K* P7 V8 i

    " @0 A. `8 N$ e! l  S
    1. (?s)(?<=T)(.*?)(1)(.*?)(?=T)(?=.*:\2=([A-C]))
    复制代码

    ! E, f( f& ~; {4 B替代
    1. \1\4\3
    复制代码
    (?s):单行模式或 "." 匹配换行符; (?<=T):后视;(?=T):前视; (?=.*:\2=([A-C])): 利用 \2 取得 \4 做替代用。8 y% C6 Q% }" H3 C
    , }! [: o& O3 q9 h; H% ]
    Editpad 里亲测可行,不过要点击多次 ctrl-shift-F3 (replace all)
  • TA的每日心情
    慵懒
    2023-3-27 00:18
  • 签到天数: 606 天

    [LV.9]以坛为家II

     楼主| 发表于 2018-11-28 00:56:31 | 显示全部楼层
    本帖最后由 preachers 于 2018-11-28 01:05 编辑 2 G: q& b8 y6 V! [* _
    mikeee 发表于 2018-11-27 18:18
    6 L9 L& }" t( x7 ^不完美,但至少证实正则是可以做的,基本想法来自 https://www.rexegg.com/regex-trick-conditional-repla ...

    2 s. F; u; Y5 R" Z" G/ y7 J- e额⋯⋯这就是我在前面帖子提到的那种情况,你确实是找到了一个办法可以把这个匹配出来,不过这种方法在实际应用当中到底有多大的可行性我们来分析一下。0 G- @/ o' h, B- Y9 h8 ?* a, G
    像是我这个例子,它是一个简短的字符串,如果说我们规定必须用正则式来解决这个问题的话,那么你的这个方法应该说是可以接受的,但是说实话,按我个人的看法来讲,这有点耍小聪明的感觉了,因为这个方法需要在原本的字符串后面加东西来使正则式成立。3 @2 n9 {. F3 S% }2 Q2 e" v3 q
    我的这个示例里面两个T代表实际词典中整个例句区块的span class,1和2代表原文例句的前后两端,而2和3代表解释的前后两端。(如果拿英汉词典举例,1和2代表英文例句的两端,而2和3代表中文解释的两端)通过匹配出这三个位置,可以实现给例句细分加小的class。+ ?8 a: b0 y" K* \( H
    那么如果在庞大的词典中,为了强行使用正则解决这类问题,就必须首先在每个词条后面加他的这个pool,应该说,本来用纯文本编辑器+正则的方式做词典就已经比较容易乱了,再加个pool到每个词条的后面,然后匹配完成再删掉,这个就算可以解决问题也属于十分绕弯子了。你要知道我这样举例它只是[1,2,3]和[A,B,C]而已,实际应用中这每一个字符都会变成一大串字符,这样做出来的pool基本上看一眼就够凌乱的了。  M- g$ g5 I) p5 S
    你给出的这个链接我去看了,他里面提到的各种方法都是基于添加这个pool来实现的,我个人倾向于不把这样的方法来用到实际词典制作当中,但是也许在某种特殊环境下这种方法可以一试。
    4 p  n. N: _) y  i% T2 b/ r& M; F' v. d0 |- f" f
    不过不管怎么说,还是赞赏你的钻研精神,但是实话实说,这种结构其实已经超出了正则的正常语法范畴,那个链接网页的作者也提到这点了。
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    发表于 2018-11-28 20:26:47 | 显示全部楼层
    preachers 发表于 2018-11-28 00:56" _3 I' i% F0 y, z; q! J% V9 t
    额⋯⋯这就是我在前面帖子提到的那种情况,你确实是找到了一个办法可以把这个匹配出来,不过这种方法在实 ...
    ……需要在原本的字符串后面加东西来使正则式成立……

    ! R& K& T7 a( W6 ~8 s# x
    ) Q* O  S9 e  V2 u: _7 |不是加在每个字符串后,在文档末加一个就行了……
    0 y& G) S8 Q6 ]# h3 w6 F+ h3 F) P4 t" X* |- y1 _9 `$ `& U' b
    或许这个方法不适合你的问题,但有些问题是可以用得上这个方法的。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-7-10 10:36 , Processed in 0.023176 second(s), 21 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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