首页 > 正则表达式环视问题

正则表达式环视问题

安全
    安全工程
    消防工程
    研究生

对于上面的文本我想用(?<=\n)\S{2,4}匹配之
$1\n替换之
使之变成下面的效果

安全

    安全工程
    消防工程
    研究生

然而匹配能成功但无法替换

请告诉我原因,另外我知道可以不用环视的正则也能完成这个任务,但我这里想知道无法替换的原因


(?<=xxx) //肯定逆序环视,只匹配一个位置,这个位置在xxx的后面
(xxx) //自动命名分组捕获,将xxx匹配到的内容捕获到分组,并自动命名为$1

明白了吗?


和环视没有关系。因为你没有分组,也就不存在 $1

(?<=\n)(\S{2,4}) 即可。

另外这里的环视明明应该用 ^ 的(多行模式下),^ 就是做这个的(而且还能匹配首行开头)……

【热门文章】
【热门文章】