查看: 292|回复: 5
打印 上一主题 下一主题

[求助] 一个正则问题

[复制链接]
  • TA的每日心情
    擦汗
    2020-7-3 13:51
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    90

    主题

    277

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10032
    跳转到指定楼层
    1
    发表于 2020-8-31 21:31:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    请教一个正则表达式问题

    想对MDX每个非跳转词头的内容加上一对div标签包裹住。
    如:
    原</>                 
    article
    <link rel="stylesheet" type="text/css" href="naec.css"/>   
    <a href="entry://0123">上一页</a> article (<a href="entry://0124">0124</a>) <a href="entry://0125">下一页</a>
    <img class="left" src="0124.png"><img class="right" src="0124_2.png">
    <a href="entry://0123">上一页</a> article (<a href="entry://0124">0124</a>) <a href="entry://0125">下一页</a>

    转换后变成:
    </>                 
    article
    <div id="mydict">
    <link rel="stylesheet" type="text/css" href="naec.css"/>   
    <a href="entry://0123">上一页</a> article (<a href="entry://0124">0124</a>) <a href="entry://0125">下一页</a>
    <img class="left" src="0124.png"><img class="right" src="0124_2.png">
    <a href="entry://0123">上一页</a> article (<a href="entry://0124">0124</a>) <a href="entry://0125">下一页</a>
    </div>

    对于这种词头则不处理
    </>
    美国50州简况表
    @@@LINK=2764
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    73

    主题

    1552

    回帖

    9万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    96973

    QQ 章笑傲江湖章灌水大神章推广专家

    2
    发表于 2020-8-31 22:14:42 | 只看该作者
    Vim的用法,仅供借鉴:

    :%s/\(<\/>\)\n\(.*\)\n\(<link.*\)\n\(<a.*\)\n\(<img.*\)\n\(<a.*\)$/\1\r\2\r<div id="mydict">\r\3\r\4\r\5\r\6\r<\/div>/
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    17

    主题

    393

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    14980
    3
    发表于 2020-8-31 22:54:45 | 只看该作者
  • TA的每日心情
    擦汗
    2020-7-3 13:51
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    90

    主题

    277

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10032
    4
     楼主| 发表于 2020-8-31 23:12:27 | 只看该作者
    VimVim 发表于 2020-8-31 22:14
    Vim的用法,仅供借鉴:

    :%s/\(\)\n\(.*\)\n\(

    不大懂Vim哦。有没有标准的正则替换方法?
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    17

    主题

    393

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    14980
    5
    发表于 2020-9-1 00:23:19 | 只看该作者
    正则引擎支持后视变长的话(如js、vscode)可以简练一点

    https://regex101.com/r/zRecOA/2
  • TA的每日心情
    开心
    2019-8-21 19:27
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    61

    主题

    627

    回帖

    16万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    162733

    QQ 章灌水大神章笑傲江湖章

    6
    发表于 2020-9-1 08:30:38 | 只看该作者
    本帖最后由 Mandolin 于 2020-9-1 08:36 编辑

    你这个替换位置是有明显特征的嘛,可以分两下呀,一次匹配中间多换行内容小心软件崩掉哟。

    ① 加标签头
    1. 替换:(<link rel="stylesheet" type="text/css" href="naec.css"/>)
    2. 为:<div id="mydict">\n\1
    复制代码


    ② 加标签尾
    1. 替换:(下一页</a>)\n(<[^i])
    2. 为:\1\n</div>\n\2
    复制代码


    (不过我很好奇为什么你要把样式引入代码「<link rel="stylesheet" type="text/css" href="naec.css"/>」包在内,难道不应该放外面吗)