V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
tagtag
0D

正则菜鸟求教

  •  
  •   tagtag · Jul 20, 2022 · 1439 views
    This topic created in 1381 days ago, the information mentioned may be changed or developed.
    一段文本:
    <span>target</span> target <div>target</div>

    我想只替换没有被标签包裹的 target ,如果被标签包裹则忽略,应该怎么匹配啊,感谢感谢。
    Supplement 1  ·  Jul 20, 2022
    用左右两个环视的方法 (?<!>)target(?!<\/.+>) 虽然不太严谨,但是能满足我的需求了。
    5 replies    2022-07-20 17:21:34 +08:00
    xiangyuecn
        1
    xiangyuecn  
       Jul 20, 2022
    '<span>target</span> target <div>target</div>'.replace(/(<\/\w+>)([^<]+)(<(?!\/))/, "$1 服不服 $3");
    tagtag
        2
    tagtag  
    OP
       Jul 20, 2022
    @xiangyuecn 感谢,但是这个好像不能通用,用分组应该不行。
    duan602728596
        3
    duan602728596  
       Jul 20, 2022   ❤️ 1
    这种 html 的处理不推荐使用正则,建议转换成树处理。浏览器内原生使用 DOMparser ,node 端推荐用 jsdom 。
    autoxbc
        4
    autoxbc  
       Jul 20, 2022
    所有正则教程都应该告诉用户「什么情况下不要用正则」
    lululau
        5
    lululau  
       Jul 20, 2022
    楼上说得对,其实这题他不会
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2456 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 05:15 · PVG 13:15 · LAX 22:15 · JFK 01:15
    ♥ Do have faith in what you're doing.