iesvme
V2EX  ›  Vim

在 vim 正则里,如何只查找 //里的 j 字母呢?

  •  
  •   iesvme · Oct 24, 2016 · 2696 views
    This topic created in 3505 days ago, the information mentioned may be changed or developed.

    dj /ddjkfie/
    aajbj /cjaaj/
    jgo /j'racb/
    我用[j]不能排除前面的 j
    请教 vim 大虾:在 vim 正则里,如何只查找 //里的 j 字母呢?

    Supplement 1  ·  Oct 24, 2016
    谢谢各位,怪我没说清楚,我是想把 j 替换为 c
    dj /ddjkfie/ [ajer]<br>
    aajbj /cjaaj/ (ctjjer)<br>
    jgo /j'racb/<br>
    我用[j]不能排除前面的 j<br>
    请教 vim 大虾:在 vim 正则里,如何只替换 //里的 j 字母呢?
    6 replies    2016-10-24 15:32:33 +08:00
    fuzhuo233
        1
    fuzhuo233  
       Oct 24, 2016 via iPhone
    其实你就是想匹配单词...
    方法一 随便光标移到一个独立的 j 然后 gd
    方法二 查找\<j\>
    fuzhuo233
        2
    fuzhuo233  
       Oct 24, 2016 via iPhone
    看错了…你找到那个 j 干嘛呢… 正则能匹配中间有个 j 的 //对。表达式\/.*j.*/\
    ivvei
        3
    ivvei  
       Oct 24, 2016
    \/\@<=j
    reus
        4
    reus  
       Oct 24, 2016
    \/.*\zsj\ze.*\/
    4641585
        5
    4641585  
       Oct 24, 2016
    :%s/\(\/.\{-}\)j\(.\{-}\/\)/\1c\2/

    这样只能匹配第一个出现的 j
    让我想想再怎么搞一下……
    ltux
        6
    ltux  
       Oct 24, 2016
    :%s#\v(/[^/]*)@<=j([^/]*/)@=#c#g
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   869 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 20:41 · PVG 04:41 · LAX 13:41 · JFK 16:41
    ♥ Do have faith in what you're doing.