掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2470|回复: 12

[使用求助] 哪位仁兄熟悉正则表达式的?

[复制链接]
  • TA的每日心情
    慵懒
    2022-2-1 17:46
  • 签到天数: 105 天

    [LV.6]常住居民II

    发表于 2019-1-5 23:22:44 | 显示全部楼层 |阅读模式
    anki的查找和替换支持正则表达式,我的需求是:查找{{单词}}中是否为空,如果非空,则在其后加上“: ”(不含双引号)。举例:test->test:
    # W' O' x0 m" L5 q/ ~+ r试过很多次了,都不成功,可以用(\w+)查找到单词,但是如何替换搞不定。3 ?. t0 K, ^9 r! ?
    哪位仁兄熟悉正则表达式的,能不能出手相助下?
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-1-5 23:35:00 | 显示全部楼层
    本帖最后由 jonah_w 于 2019-1-5 23:53 编辑
    0 P3 E2 t7 I, \2 g/ Z! O
    9 g0 L/ m$ p& o$ v(?<={{)([^\s]+?)(?=}})
    - S' _2 R& Q2 A& _: z替换为:
    & U& i& {! H+ y  h% M* r, M\1:
    , ^0 ]9 W( n. x0 y: |0 R/ F+ x. I8 v9 w, V7 o% n, W$ y0 D

    + v% U1 F; S7 |( m2 y9 @, f/ j9 g6 @6 M8 I

    该用户从未签到

    发表于 2019-1-5 23:38:12 | 显示全部楼层
    本帖最后由 dongzhi1980 于 2019-1-6 00:14 编辑
    0 p2 Z+ q: J$ m7 n6 M) ^3 }0 X0 {, A# s  g: z/ f8 M
    我的需求是:查找{{单词}}中是否为空{{}},{{   }},{{单词-单词   }},{{  单词单词   }},如果非空,则在其后加上“: ”(不含双引号)。举例:test->test:8 S, }0 b4 Q1 T' v! b& N) f3 M/ ]
    试过很多次了,都不成功,可以用(\w+)查找到单词,但是如何替换搞不定
    6 S$ W. n1 j9 _, U; d& S6 c+ p( ^1 i. z! g, m
    {{\s*(\w+[-\w]*)\s*}}  -> {{\1:}} Emeditor通过
    3 ^. a2 d( ?5 m6 O5 B# z8 n" ?+ v7 `  Q8 S/ n0 u- n
    我的需求是:查找{{单词:}}中是否为空{{}},{{   }},{{单词-单词:}},{{单词单词:}},如果非空,则在其后加上“: ”(不含双引号)。举例:test->test:5 w9 r' a% E! j  N0 L
    试过很多次了,都不成功,可以用(\w+)查找到单词,但是如何替换搞不定
    $ u& @3 C, t* c; Y: r3 u  r3 [3 Q/ F$ |) i! `1 [+ Y5 [# l  @
  • TA的每日心情
    擦汗
    2023-3-25 13:49
  • 签到天数: 147 天

    [LV.7]常住居民III

    发表于 2019-1-6 09:24:58 | 显示全部楼层
    没看懂,贴几张anki的图比你这一大堆文字要清楚许多。你这个“为空”的“空”到底指什么?指单词字段没有内容,还是说单词字段的内容中有空格?谁知道呢。

    该用户从未签到

    发表于 2019-1-6 09:49:33 | 显示全部楼层
    本帖最后由 jeanleem6 于 2019-1-6 09:59 编辑
    & r( i* n" d) ~( P6 W: v, q" ~: C3 h/ I# C" H
    建议楼主分四步来处理:
    • 处理两对大括弧 {{}}之间只有空白字符的情况(空格、tab、回车等)
    • 处理两对大括弧 {{}}之间内容前面有空白字符的情况(如:{{  单词 单词}}、{{  单词 单词   }})
    • 处理两对大括弧 {{}}之间内容后面有空白字符的情况(如:{{单词 单词  }}、{{  单词 单词   }})
    • 给内容之后加冒号4 F, ?8 w" I! G, Y
    : _# X/ k2 D( b( I
    第一步正则及替换:
    1. {{\s+}}   //正则
      , j- U9 Y) B4 s
    2. {{}}       //替换
    复制代码
    4 ^! v4 T$ _3 b
    第二步正则及替换:
    + K$ L6 H4 @9 _2 t" S% P4 @
    1. {{\s+([^{}]+?)}}   //正则1 i/ R7 \- }- W( [
    2. {{\1}}                 //替换
    复制代码

    3 Z- v) N0 }. X6 ]第三步正则及替换:
    # b, L) T7 M, t3 ?' V: s4 T
    1. {{([^{}]+?)\s+}}   //正则* l# K! b* {% z1 |/ h
    2. {{\1}}                     //替换
    复制代码

    . T' ^! ]- r- C; v+ |第四步正则及替换:
    7 O- w4 S8 \+ F; B+ I. s9 e" S
    1. {{([^{}]+?)}}   //正则
      9 `: k+ `+ B8 m9 Q4 ~9 T( i3 C
    2. {{\1:}}             //替换
    复制代码
    4 Z+ Z  K9 Z. s& f4 J
    当然,其实第三步与第四步可以合并为一步
    # N* R: e, s0 t# X8 I  |8 U
    1. {{([^{}]+?)\s+}}   //正则4 t. ]8 W4 t: S* Z6 Y3 z9 o' t0 W
    2. {{\1:}}                    //替换
    复制代码

    : v0 R) }; k3 H: J7 W  h& ]( n8 l7 e

    / S+ Q; _' n! x8 Y7 U. n6 }7 b) g. S+ L/ f/ Z4 v4 x- m9 \
    9 }& b1 V7 c& ~
  • TA的每日心情
    慵懒
    2022-2-1 17:46
  • 签到天数: 105 天

    [LV.6]常住居民II

     楼主| 发表于 2019-1-6 10:12:10 | 显示全部楼层
    谢谢上面几位坛友提供的表达式,我测试了都不行。我自己之前写的表达式,在线测试也是可以的,但是到anki的查找替换里面就没用了。
    ( w8 M' O$ ~" P* w; j
    4 T5 |; X. I  G' O) f) U' O, E% d% a3 }) T, r; j. d; _; F
    - c2 ^: M8 c6 t% n0 J; B/ c

    本帖子中包含更多资源

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

    x

    点评

    抱歉不用anki,所以不知道它的具体规则是怎样;不过看你直接用的我最后一步的正则,这样肯定很多匹配不了,必须从第一步开始,依次处理。  发表于 2019-1-6 10:36
  • TA的每日心情
    慵懒
    2022-2-1 17:46
  • 签到天数: 105 天

    [LV.6]常住居民II

     楼主| 发表于 2019-1-6 10:14:52 | 显示全部楼层
    宁冷越 发表于 2019-1-6 09:24/ z$ U. w  A" C5 g$ Y
    没看懂,贴几张anki的图比你这一大堆文字要清楚许多。你这个“为空”的“空”到底指什么?指单词字段没有内 ...
    - j* h% I! _. d4 O  F
    很简单,就是把上图中的{扩展1}字段里的tester,替换成tester:1 .
  • TA的每日心情
    擦汗
    2019-12-4 09:00
  • 签到天数: 302 天

    [LV.8]以坛为家I

    发表于 2019-1-6 10:44:09 | 显示全部楼层
    sunbird7800 发表于 2019-1-6 10:14' h9 Q; C& J3 i" b: M1 ~) u% H9 O$ v
    很简单,就是把上图中的{扩展1}字段里的tester,替换成tester:1 .
    2 C1 o6 m8 d& X) }. S
    在群里的话可以帮你搞一下,应该很简单
  • TA的每日心情
    郁闷
    2019-9-21 08:52
  • 签到天数: 250 天

    [LV.8]以坛为家I

    发表于 2019-1-6 16:22:06 | 显示全部楼层
    经验: 这种情况, 还是直接上截图来的痛快
  • TA的每日心情
    擦汗
    2023-3-25 13:49
  • 签到天数: 147 天

    [LV.7]常住居民III

    发表于 2019-1-6 18:08:43 | 显示全部楼层
    sunbird7800 发表于 2019-1-6 10:14
    9 J# f# N7 i" Q5 C4 A" p) K很简单,就是把上图中的{扩展1}字段里的tester,替换成tester:1 .

    1 [" s+ c$ c& t* X+ W) p如果只是根据你给我的这个回复说的要求,那么如下就可以。至于{{}},{{  }},{{单词  }},{{  单词}}等等这些我还是不明白你什么意思,多贴张图多好。% C1 |/ f# P7 g% O

    % M! R, B$ C6 E5 D$ W8 [说明:
    ! p+ V4 G) n% y7 G+ N1,挑选出内容非空(我就当作这么理解你说的吧)字段:Keywords:_*,即字段名+英文冒号+下划线+星号
      `# |* _* a: x/ ]. f4 `2,全选经过1筛选的卡片,alt+ctrl+F,打开搜索替换窗口,选择好字段,勾选正则表达式,然后
    7 C4 Y) L. ?' `" m9 ^/ F查找:(.*). d" {6 v+ n3 T( ]+ _! q8 J
    替换:\1:1
    ; B: J- X$ k4 y8 F3 d

    本帖子中包含更多资源

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

    x
  • TA的每日心情
    慵懒
    2022-2-1 17:46
  • 签到天数: 105 天

    [LV.6]常住居民II

     楼主| 发表于 2019-1-8 17:50:48 | 显示全部楼层
    宁冷越 发表于 2019-1-6 18:08) q) X( a& }4 Q4 ?* J3 E
    如果只是根据你给我的这个回复说的要求,那么如下就可以。至于{{}},{{  }},{{单词  }},{{  单词}}等等 ...

    6 X# {* h$ v7 z5 _. b0 [  L这样确实可以了,原来可以这么简单。less is more,哈哈哈,12分感谢!
  • TA的每日心情
    慵懒
    2022-2-1 17:46
  • 签到天数: 105 天

    [LV.6]常住居民II

     楼主| 发表于 2019-1-8 17:50:52 | 显示全部楼层
    宁冷越 发表于 2019-1-6 18:08
    " ^/ g: i6 N: }  ~3 q如果只是根据你给我的这个回复说的要求,那么如下就可以。至于{{}},{{  }},{{单词  }},{{  单词}}等等 ...
    * A1 F9 h6 G# a0 D2 S' x
    这样确实可以了,原来可以这么简单。less is more,哈哈哈,12分感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-20 07:28 , Processed in 0.050737 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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