掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2479|回复: 12

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

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

    [LV.6]常住居民II

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

    [LV.6]常住居民II

    发表于 2019-1-5 23:35:00 | 显示全部楼层
    本帖最后由 jonah_w 于 2019-1-5 23:53 编辑
    , V( f% Q$ T& u' k6 [- f8 U) C# c  K8 T3 C; w3 d% s- h  F% _
    (?<={{)([^\s]+?)(?=}})
    + a2 P9 A* J2 A替换为:+ J7 T) a; s5 w. e- A5 |- B
    \1:
    ! k2 j8 w; n& \( q1 E: X; n& x+ F6 B) K5 ]
    7 T5 Y1 X% H2 r

    9 P2 o8 T+ |9 C

    该用户从未签到

    发表于 2019-1-5 23:38:12 | 显示全部楼层
    本帖最后由 dongzhi1980 于 2019-1-6 00:14 编辑 0 E8 y( y- s! J6 R: H  p
    1 E1 Y/ H3 N5 G7 i5 I. m
    我的需求是:查找{{单词}}中是否为空{{}},{{   }},{{单词-单词   }},{{  单词单词   }},如果非空,则在其后加上“: ”(不含双引号)。举例:test->test:% w' v& _3 ^9 v5 X+ I# Z
    试过很多次了,都不成功,可以用(\w+)查找到单词,但是如何替换搞不定+ H& `5 b) B0 _9 [4 K

    2 u; x) R3 I% Q{{\s*(\w+[-\w]*)\s*}}  -> {{\1:}} Emeditor通过' u$ ]7 w3 s; t) i; M! T
    0 }6 V% H" O+ g4 `7 D" Z
    我的需求是:查找{{单词:}}中是否为空{{}},{{   }},{{单词-单词:}},{{单词单词:}},如果非空,则在其后加上“: ”(不含双引号)。举例:test->test:+ Q1 j2 a. l' V8 a8 H5 r# U
    试过很多次了,都不成功,可以用(\w+)查找到单词,但是如何替换搞不定
    7 O, h# o$ z2 l9 _- w
    ( b+ i% S5 B  [4 G$ E8 ]+ Y
  • 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 编辑 * v# q  `6 ~; k' v9 y
    5 d  ^% s0 r% v
    建议楼主分四步来处理:
    • 处理两对大括弧 {{}}之间只有空白字符的情况(空格、tab、回车等)
    • 处理两对大括弧 {{}}之间内容前面有空白字符的情况(如:{{  单词 单词}}、{{  单词 单词   }})
    • 处理两对大括弧 {{}}之间内容后面有空白字符的情况(如:{{单词 单词  }}、{{  单词 单词   }})
    • 给内容之后加冒号+ c0 x6 w! x% A3 h9 m- ]
    / K7 K' N* w  J+ G" }" E( ^
    第一步正则及替换:
    1. {{\s+}}   //正则, H+ r9 }' M0 Y: X4 F9 r
    2. {{}}       //替换
    复制代码

    * P( ~0 ?/ p6 {  l# [9 V, G* h第二步正则及替换:
    8 o  j+ |: x! m& \5 Y: P
    1. {{\s+([^{}]+?)}}   //正则+ s( f4 a6 J/ c" K$ [
    2. {{\1}}                 //替换
    复制代码

    5 c$ Y( N- v6 j9 R# ?( {9 ~第三步正则及替换:! j) i- J& l2 U' M
    1. {{([^{}]+?)\s+}}   //正则
      7 ~- O# J; t; `& \8 S  ]) G
    2. {{\1}}                     //替换
    复制代码

    ( ?2 A" o5 j& u- C. r" P' a第四步正则及替换:
    7 L/ u( K+ d9 `* u1 x6 q( g/ G
    1. {{([^{}]+?)}}   //正则" K; U* e& o+ q. R
    2. {{\1:}}             //替换
    复制代码

    % b# g( G6 o7 o2 R) Y! K# A当然,其实第三步与第四步可以合并为一步
    4 I- n' o* v* A! `( ]: G* k) w* K
    1. {{([^{}]+?)\s+}}   //正则
      , P1 G; N3 S) N3 h1 F5 Q/ D
    2. {{\1:}}                    //替换
    复制代码
    ' }1 b& O1 l& s: n

    0 S  Q( f$ d& _, P5 N5 {) L2 {0 Q: O
    " {8 s/ a$ I* X; W# U" R# w
    0 \7 ~% y5 H! L+ V/ g; M( u9 v
  • TA的每日心情
    慵懒
    2022-2-1 17:46
  • 签到天数: 105 天

    [LV.6]常住居民II

     楼主| 发表于 2019-1-6 10:12:10 | 显示全部楼层
    谢谢上面几位坛友提供的表达式,我测试了都不行。我自己之前写的表达式,在线测试也是可以的,但是到anki的查找替换里面就没用了。
    7 n3 H7 p: j9 X" }+ Y) I& d% H( v

    - b  ^+ d, Y: g0 X4 @! l* _0 V. C+ K

    本帖子中包含更多资源

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

    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
    / N; X8 x2 G% m$ v: Y4 t没看懂,贴几张anki的图比你这一大堆文字要清楚许多。你这个“为空”的“空”到底指什么?指单词字段没有内 ...

    6 ?$ Z  ^7 h. N) {5 w$ 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+ w' W9 u+ s% r; S' i
    很简单,就是把上图中的{扩展1}字段里的tester,替换成tester:1 .
    % E: P6 s- ~. S7 ]8 u
    在群里的话可以帮你搞一下,应该很简单
  • 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
    0 G0 |! f$ X% h' C( X很简单,就是把上图中的{扩展1}字段里的tester,替换成tester:1 .
    1 k, R1 {$ p( f; o' O
    如果只是根据你给我的这个回复说的要求,那么如下就可以。至于{{}},{{  }},{{单词  }},{{  单词}}等等这些我还是不明白你什么意思,多贴张图多好。
    * l+ X+ [* _' o! \+ i0 k
    3 I7 {; W5 _* ]' C4 U$ J说明:
    ; o3 y! A& y' E7 S5 F4 A' d) d; _# X1,挑选出内容非空(我就当作这么理解你说的吧)字段:Keywords:_*,即字段名+英文冒号+下划线+星号
    # X5 r" S; P# F; U: }1 L  [2,全选经过1筛选的卡片,alt+ctrl+F,打开搜索替换窗口,选择好字段,勾选正则表达式,然后% `8 m' p' F" \8 u( s: {% S
    查找:(.*)2 W" m! p& e8 q* Y, l0 |  f
    替换:\1:1
    + S; `* P# I4 s% D% q" [

    本帖子中包含更多资源

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

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

    [LV.6]常住居民II

     楼主| 发表于 2019-1-8 17:50:48 | 显示全部楼层
    宁冷越 发表于 2019-1-6 18:08
    3 d! z. |, N6 S如果只是根据你给我的这个回复说的要求,那么如下就可以。至于{{}},{{  }},{{单词  }},{{  单词}}等等 ...

    . }; m7 Y" V. b  z& M0 H' |$ 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
    $ R* e; @! c: p$ z+ o1 {如果只是根据你给我的这个回复说的要求,那么如下就可以。至于{{}},{{  }},{{单词  }},{{  单词}}等等 ...
    : _# `. b/ p$ m3 k% [4 ^
    这样确实可以了,原来可以这么简单。less is more,哈哈哈,12分感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-24 11:36 , Processed in 0.059456 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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