• 欢迎访问好鸭,WordPress信息,WordPress教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏好鸭吧

【记录】学会了一点点正则的皮毛

未分类 haoduck 12个月前 (04-26) 447次浏览 0个评论

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

会者不难,大多数文本编辑器都有搜索替换的功能,其中又有很大一部分支持正则表达式

经常用来匹配删除/替换一些文本

不过后来有了一个需求,就是我需要匹配https://haoduck.com/?p=[数字]替换为https://haoduck.com/[数字].html

正文

正则表达式中\d表示数字,\d+表示一个或多个连着的数字

表达式为:https://haoduck.com/\?p=\d+,这样可以匹配到所有https://haoduck.com/?p=[数字],此处“?”前的\为转义符,表示匹配字符串?,而非正则中的特殊字符,不过这里加不加转义都不影响匹配

那么我们怎么将要匹配的\d+保持不会,而更改其他部分呢

使用一对小括号( ),表示标记一个子表达式的开始和结束位置,可以供以后使用

那么表达式就变为https://haoduck.com/\?p=(\d+)
后面,需要使用标记好的(\d+)就可以使用$1来引用,和Shell脚本传入参数差不多,标记了多个要匹配的子表达式依次使用$1$2$3$4等等来引用

那么要匹配的表达式就是https://haoduck.com/\?p=(\d+),替换部分字符的表达式为https://haoduck.com/$1.html

效果为
https://haoduck.com/?p=123 ==》 https://haoduck.com/123.html
https://haoduck.com/?p=456 ==》 https://haoduck.com/456.html

后言


好鸭 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【记录】学会了一点点正则的皮毛
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址