掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3194|回复: 12

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

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

    [LV.6]常住居民II

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

    [LV.6]常住居民II

    发表于 2019-1-5 23:35:00 | 显示全部楼层
    本帖最后由 jonah_w 于 2019-1-5 23:53 编辑
    % R& _6 \7 s6 ]' S& \2 W1 R
    : U0 c) C. m2 _(?<={{)([^\s]+?)(?=}})5 B1 G8 A4 s4 E2 q, B4 O$ L, N
    替换为:/ Y2 k) ?8 ~& g
    \1: - r! o- {+ W8 v7 W
    1 n6 v3 C1 S, n, c4 p3 U+ Q; K

    # ]! G& A7 O7 S# e) o! }
    5 W) {; H" e* a) C' I

    该用户从未签到

    发表于 2019-1-5 23:38:12 | 显示全部楼层
    本帖最后由 dongzhi1980 于 2019-1-6 00:14 编辑
    2 P1 V! z$ t& C- h! Y4 U
    % {, P/ f# v: |' ?我的需求是:查找{{单词}}中是否为空{{}},{{   }},{{单词-单词   }},{{  单词单词   }},如果非空,则在其后加上“: ”(不含双引号)。举例:test->test:0 S8 f, w% K  r/ C5 j" [( T
    试过很多次了,都不成功,可以用(\w+)查找到单词,但是如何替换搞不定
    " H* Y: J. p$ A* W# c( B; @6 f$ n! d( v: l9 K- |
    {{\s*(\w+[-\w]*)\s*}}  -> {{\1:}} Emeditor通过
    8 u2 D  k+ r, g; |5 T2 K8 [. c5 [% v# ^* V' y0 p
    我的需求是:查找{{单词:}}中是否为空{{}},{{   }},{{单词-单词:}},{{单词单词:}},如果非空,则在其后加上“: ”(不含双引号)。举例:test->test:
    0 ^! w* N% E' q9 |% U试过很多次了,都不成功,可以用(\w+)查找到单词,但是如何替换搞不定
    0 e: C3 ?5 b# G
    8 P$ w1 K' a. G
  • 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 编辑
    : T8 X4 o8 C, M6 U: k- z" C. Z) N7 P  y
    建议楼主分四步来处理:
    • 处理两对大括弧 {{}}之间只有空白字符的情况(空格、tab、回车等)
    • 处理两对大括弧 {{}}之间内容前面有空白字符的情况(如:{{  单词 单词}}、{{  单词 单词   }})
    • 处理两对大括弧 {{}}之间内容后面有空白字符的情况(如:{{单词 单词  }}、{{  单词 单词   }})
    • 给内容之后加冒号# b) Q1 x$ u: \, {3 z& t

    7 P. Q  B$ S5 ~( r) Z/ a第一步正则及替换:
    1. {{\s+}}   //正则( i  }( l- }1 ]$ S$ l8 x4 K
    2. {{}}       //替换
    复制代码
    . f2 u3 m  t. m
    第二步正则及替换:' e: u' }' h' u  B2 y
    1. {{\s+([^{}]+?)}}   //正则0 z; @! z7 L/ J% G( i: s
    2. {{\1}}                 //替换
    复制代码

    8 V8 }8 @7 j/ _  |3 y第三步正则及替换:; C' L- a! d' C. b
    1. {{([^{}]+?)\s+}}   //正则
      6 U, Q1 _$ \7 E; V6 D
    2. {{\1}}                     //替换
    复制代码

    2 d9 k3 ^1 t; z; ^2 F8 ^第四步正则及替换:8 w4 x/ |3 g3 n3 v$ z
    1. {{([^{}]+?)}}   //正则
      % T- t* t9 o+ P" W0 W
    2. {{\1:}}             //替换
    复制代码
    1 q- C/ c6 }1 p; A- R) ?
    当然,其实第三步与第四步可以合并为一步5 a# e. V3 P- Z/ f$ |. \* D
    1. {{([^{}]+?)\s+}}   //正则
      ) a8 h: N) T2 M6 ]6 Q
    2. {{\1:}}                    //替换
    复制代码

    1 |1 {& v  s3 `: v6 J
    7 V+ Q- X% Q. o( e! n% z# Y
    # r( @& R: U% _# i- `% p6 G; q) x5 d( v
    8 |* {9 r# c' g' _, L! @4 \7 t
  • TA的每日心情
    慵懒
    2022-2-1 17:46
  • 签到天数: 105 天

    [LV.6]常住居民II

     楼主| 发表于 2019-1-6 10:12:10 | 显示全部楼层
    谢谢上面几位坛友提供的表达式,我测试了都不行。我自己之前写的表达式,在线测试也是可以的,但是到anki的查找替换里面就没用了。- c* K  e/ k0 g1 ]+ J

    ' ^  `+ O8 o1 D; H5 r
    * m. V% [3 L; i8 G4 m+ P
    7 x4 y  y" r' ~% @: e9 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:247 N$ O  l. p9 _' P% Z# r: ~! n5 ~
    没看懂,贴几张anki的图比你这一大堆文字要清楚许多。你这个“为空”的“空”到底指什么?指单词字段没有内 ...

    # f+ t; b6 u4 v3 r很简单,就是把上图中的{扩展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:143 k1 K5 P# D- U: g; W
    很简单,就是把上图中的{扩展1}字段里的tester,替换成tester:1 .
    3 i' K2 j6 k2 @1 C6 x6 [
    在群里的话可以帮你搞一下,应该很简单
  • 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+ K! Y) ^/ N0 d/ L+ L
    很简单,就是把上图中的{扩展1}字段里的tester,替换成tester:1 .

    5 U6 \# V6 I4 ?: @4 [如果只是根据你给我的这个回复说的要求,那么如下就可以。至于{{}},{{  }},{{单词  }},{{  单词}}等等这些我还是不明白你什么意思,多贴张图多好。
    6 W* W7 I2 X; [- c: O
    , Q- H7 m# f9 B说明:
    # K6 ^# N, z* B8 j) q. j- ^1,挑选出内容非空(我就当作这么理解你说的吧)字段:Keywords:_*,即字段名+英文冒号+下划线+星号
    ; V6 T/ T3 J9 v- i8 O0 Z' R2,全选经过1筛选的卡片,alt+ctrl+F,打开搜索替换窗口,选择好字段,勾选正则表达式,然后. ~3 `! P" o: R4 [0 n: |) P
    查找:(.*)5 Z- I5 U2 Y, e( X
    替换:\1:1
    & G/ M7 Y' V! J2 X0 d3 `+ P

    本帖子中包含更多资源

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

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

    [LV.6]常住居民II

     楼主| 发表于 2019-1-8 17:50:48 | 显示全部楼层
    宁冷越 发表于 2019-1-6 18:08( H2 J% w( E5 y% \9 w* ]* Z0 r2 G
    如果只是根据你给我的这个回复说的要求,那么如下就可以。至于{{}},{{  }},{{单词  }},{{  单词}}等等 ...

    " @' ]* W/ U1 q! z* J$ 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; \" V, @4 Y4 K! l9 `/ L
    如果只是根据你给我的这个回复说的要求,那么如下就可以。至于{{}},{{  }},{{单词  }},{{  单词}}等等 ...

    8 D' K- ]) `) O4 k8 x这样确实可以了,原来可以这么简单。less is more,哈哈哈,12分感谢!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-5-10 16:55 , Processed in 0.022482 second(s), 23 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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