V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
uti6770werty
V2EX  ›  问与答

正则替换的替换式问题

  •  
  •   uti6770werty · 2020-02-11 00:23:22 +08:00 · 1009 次点击
    这是一个创建于 1536 天前的主题,其中的信息可能已经有所发展或是发生改变。

    学着用正则表达式来搜索文字,小小简单的已经能匹配上了
    但是替换式不知道应该如何实现,看了文档,试着在测试器里折腾,终究过不了关,唯有求助发帖问。。。

    第一个问题:如

    \<\/p\>\d+\"\s*
    

    可以匹配上

    </p>95"  
    

    (by the way:也同时匹配了“后面的空白字符,这个字符串是有后面空白字符的,所以加上了\s*)
    求助: 替换成

    </a>95"  
    

    (不一定会是 95,所以用了 d+)

    第二个问题:

    </table>00'  
    

    是用:

    \</table\>\d+.*'
    

    匹配上的,后面也有空白字符,但是我没用\s*,在测试器里也给我匹配上了,搞不懂为什么。。。
    求助:

    </table>00'$$
    

    把后面的字符空白,替换成$$两个字符

    3 条回复    2020-02-11 02:27:21 +08:00
    yejianmail
        1
    yejianmail  
       2020-02-11 01:41:37 +08:00 via Android
    你需要了解正则的分组概念
    yejianmail
        2
    yejianmail  
       2020-02-11 01:46:15 +08:00 via Android
    第二个问题看你正则如何用的,加上^$才表示全匹配
    noqwerty
        3
    noqwerty  
       2020-02-11 02:27:21 +08:00
    替换直接用分组就可以,取决于你用的语言 /软件具体的语法可能会有区别。

    第二个问题我没能复现: https://regex101.com/r/hcidM6/1/

    如果你 </table>00' 这一行后面还有一个单引号的话,那可能是 .* 匹配到了第一个单引号和后面的空格
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4085 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 05:26 · PVG 13:26 · LAX 22:26 · JFK 01:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.