首页 > 编程 > Regex > 正文

一个替换目录结构的正则表达式 实现目录的增加

2020-03-16 21:14:07
字体:
来源:转载
供稿:网友

这个功能挺重要大家习惯了用asp,php等在线的,用一些支持正则表达式的软件实现替换是更有效率的,容易测试等,读懂了这个就可以更方便的利用正则表达式为我们服务了。

需要解决如下操作:

有多个shtml文件,里面有连接地址

http://www.vevb.com/fgdf/222/1234.shtml

http://www.vevb.com/tyty/333/456456.shtml

http://www.vevb.com/tyry/789/fsdfsfs.shtml

现在我我想把这些.shtml文件连接地址前面加个目录名 inc 就是变成

http://www.vevb.com/fgdf/222/inc/1234.shtml

http://www.vevb.com/tyty/333/inc/456456.shtml

解决方法:一般来说editplus等支持正则表达式的软件就可以了 查找目标:

复制代码代码如下:

^(.+/)(.+)$

替换为:

复制代码代码如下:

/1inc//2

记得在下面的"查找模式"上选中 "正则表达式"

再顺便讲一下上面的正则是什么意思,

^(.+/)(.+)$

^ 匹配每一行的开头

$ 匹配每一行的结尾

(.+/) 匹配 从当前行的开始到最后一个 / 括号在这里表示捕获这个分组,然后才可以在正面的替换为里面使用 /1 来代表这个正则所匹配的内容

(.+) 匹配当前行的最后一个 / 的右边的字符起到这一行的结尾 (第二个捕获分组 /2)

上面的整个正则的意思是 从当前行的第一个字符找到最后一个 / 做为第一个分组,剩余的做为第二个分组

替换为: /1inc//2

中的 /1 就是上面所说的第一个分组所匹配到的内容 /2 是第二个分组所匹配到的内容 inc/ 是你想要在中间中上的字符

所以合在一起就可以达到你想要的目的了.

即:

http://www.vevb.com/12/234/678.html

http://www.vevb.com/12/234/ 为 分组一所匹配到的字符(/1)

678.html 为分组二所匹配到的字符(/2)

然后再结合替换为里面的内容,替换后的结果为

http://www.vevb.com/12/234/inc/678.html

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表