掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2518|回复: 12

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

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

    [LV.6]常住居民II

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

    [LV.6]常住居民II

    发表于 2019-1-5 23:35:00 | 显示全部楼层
    本帖最后由 jonah_w 于 2019-1-5 23:53 编辑 # z! d8 }5 `+ \. `% y6 w% e& W4 H

    8 B% D/ }4 ]: T$ _& @7 t(?<={{)([^\s]+?)(?=}})2 K" B* y( B" j. H- \
    替换为:
    / j4 T) z7 `' H  T\1: * O. Q/ t; x8 Q' r9 |5 H

    ( j( k0 O5 K7 Q; v" e8 R2 Z5 a6 D) @+ K

    / A& r# U+ S! D9 x$ d

    该用户从未签到

    发表于 2019-1-5 23:38:12 | 显示全部楼层
    本帖最后由 dongzhi1980 于 2019-1-6 00:14 编辑 3 K. l9 Y  j6 n7 p# r( B
    8 l/ M% w* q0 Y' _% T, R3 s
    我的需求是:查找{{单词}}中是否为空{{}},{{   }},{{单词-单词   }},{{  单词单词   }},如果非空,则在其后加上“: ”(不含双引号)。举例:test->test:
    6 i( H9 m, `/ a/ \( m/ ^% t试过很多次了,都不成功,可以用(\w+)查找到单词,但是如何替换搞不定+ q6 [" x$ x, t9 u
    * x. D5 e. N' E' i0 S
    {{\s*(\w+[-\w]*)\s*}}  -> {{\1:}} Emeditor通过2 `6 A: ?% n, m0 [7 q. [/ H

    7 c0 c% n5 b  s' k* d$ q" J我的需求是:查找{{单词:}}中是否为空{{}},{{   }},{{单词-单词:}},{{单词单词:}},如果非空,则在其后加上“: ”(不含双引号)。举例:test->test:; M6 o; k; K! M0 R/ }6 Q0 @
    试过很多次了,都不成功,可以用(\w+)查找到单词,但是如何替换搞不定9 t# G, m7 v. H) v; G

    8 Z& k2 O3 [( A8 r# i
  • 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 编辑 ) f5 u; ^, A1 M/ ^% @
    & s4 A  k8 M4 P# i8 E! L
    建议楼主分四步来处理:
    • 处理两对大括弧 {{}}之间只有空白字符的情况(空格、tab、回车等)
    • 处理两对大括弧 {{}}之间内容前面有空白字符的情况(如:{{  单词 单词}}、{{  单词 单词   }})
    • 处理两对大括弧 {{}}之间内容后面有空白字符的情况(如:{{单词 单词  }}、{{  单词 单词   }})
    • 给内容之后加冒号. W" [, ?1 z! ~  ^( |
      G6 b8 h: ]8 z6 \2 X0 }6 C
    第一步正则及替换:
    1. {{\s+}}   //正则' U4 V7 W' c& @* h2 u$ W8 }( r
    2. {{}}       //替换
    复制代码
    6 h& E' r, V! f7 y7 i: u6 {  `9 c1 C
    第二步正则及替换:
    $ P6 o# z0 z- K7 A# p0 x2 }9 V* ?
    1. {{\s+([^{}]+?)}}   //正则
      1 O7 q% a) g# [7 R4 B9 A& i
    2. {{\1}}                 //替换
    复制代码

    ! w3 X( Y/ c$ r9 X1 R第三步正则及替换:
    ) W7 t0 e  W: A" m
    1. {{([^{}]+?)\s+}}   //正则6 `) B1 ?0 i# d# Z# N
    2. {{\1}}                     //替换
    复制代码
    $ L* T3 ]; A6 w* o& n
    第四步正则及替换:
    : q: h- ?, `7 \! V, E2 Z* t
    1. {{([^{}]+?)}}   //正则
      , R3 a- f0 c1 e8 d/ k
    2. {{\1:}}             //替换
    复制代码

    % B  X# K- ?# \* t6 q- H当然,其实第三步与第四步可以合并为一步
    $ q  j9 w7 O% o. ?
    1. {{([^{}]+?)\s+}}   //正则
      # r1 q. m2 U1 J4 y$ y
    2. {{\1:}}                    //替换
    复制代码

    ! b" Y3 [. K! C$ O. t
    & x+ I& @& Q) d3 X4 ?
    , }  c! f3 U0 U4 D+ M
    + E/ Y9 u9 H1 u4 i! U
    / l: L+ c. J3 k& h* I
  • TA的每日心情
    慵懒
    2022-2-1 17:46
  • 签到天数: 105 天

    [LV.6]常住居民II

     楼主| 发表于 2019-1-6 10:12:10 | 显示全部楼层
    谢谢上面几位坛友提供的表达式,我测试了都不行。我自己之前写的表达式,在线测试也是可以的,但是到anki的查找替换里面就没用了。! z) F5 f4 k$ Z
    % w$ L+ G7 Z! d! v3 v

    0 a/ L9 d4 q4 d) I4 W) D& s! N
    ' E5 n# j5 ]1 ~- c3 v8 j

    本帖子中包含更多资源

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

    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
    4 N, s8 {9 q+ {没看懂,贴几张anki的图比你这一大堆文字要清楚许多。你这个“为空”的“空”到底指什么?指单词字段没有内 ...

    / _7 k0 c% \  E3 c/ ^很简单,就是把上图中的{扩展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
      R4 _+ q1 f: b" f+ X/ b4 O& U很简单,就是把上图中的{扩展1}字段里的tester,替换成tester:1 .
    ( Y5 J: b: }3 [% ?  e; r
    在群里的话可以帮你搞一下,应该很简单
  • 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; R. v" K/ h" z8 ~7 U' s1 D
    很简单,就是把上图中的{扩展1}字段里的tester,替换成tester:1 .
    4 z9 t+ M2 p3 o' c  u9 o, M2 ^
    如果只是根据你给我的这个回复说的要求,那么如下就可以。至于{{}},{{  }},{{单词  }},{{  单词}}等等这些我还是不明白你什么意思,多贴张图多好。
    5 d& v2 h$ H  i# f) s6 X
    1 P4 D' N% F- o* _说明:0 k& w1 ]1 [* X1 Z
    1,挑选出内容非空(我就当作这么理解你说的吧)字段:Keywords:_*,即字段名+英文冒号+下划线+星号) h& n0 \& g0 U7 l+ K' s
    2,全选经过1筛选的卡片,alt+ctrl+F,打开搜索替换窗口,选择好字段,勾选正则表达式,然后- t( `6 x0 l! D$ f3 X' L
    查找:(.*)" H/ H2 ?  p; j4 p" o: k
    替换:\1:18 k. q# J3 v  M! e/ j. p! Y- v

    本帖子中包含更多资源

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

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

    [LV.6]常住居民II

     楼主| 发表于 2019-1-8 17:50:48 | 显示全部楼层
    宁冷越 发表于 2019-1-6 18:08/ Y) p3 ?& I, L$ D6 _$ E  j
    如果只是根据你给我的这个回复说的要求,那么如下就可以。至于{{}},{{  }},{{单词  }},{{  单词}}等等 ...
    " E! S0 E; x4 `$ z$ g" X8 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:088 M  H- s" {& J+ g
    如果只是根据你给我的这个回复说的要求,那么如下就可以。至于{{}},{{  }},{{单词  }},{{  单词}}等等 ...
    * i' z' \; d. `4 N2 ]- X% l2 |0 {6 Z
    这样确实可以了,原来可以这么简单。less is more,哈哈哈,12分感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-15 23:15 , Processed in 0.072405 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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