无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6827|回复: 31

[求助] 正则表达式不会用,特来求助!

[复制链接]
发表于 2018-5-22 06:44:54 | 显示全部楼层 |阅读模式
1无忧币
本帖最后由 zhxy9804 于 2018-5-22 06:51 编辑

是这样子的,我下载了一个chrome插件,是个网址跳转的,
想把网址 aaa.com/file-123456.html 跳转成aaa.com/id?=123456
123456是个可变部分

插件下载地址:https://chrome.google.com/websto ... gkklkocebdffgplmcle
或者我已经下载好了的: Redirector_v2.2.22.7.crx.7z (82.58 KB, 下载次数: 1)

 楼主| 发表于 2018-5-22 07:09:03 | 显示全部楼层
2018-05-22_070815.jpg

以上是别人做过的一个例子,可惜我完全看不懂
回复

使用道具 举报

发表于 2018-5-22 08:11:45 | 显示全部楼层
如果是linux shell 对字符串 做正则替换,是用以下方式:
  1. [root@t6 ~]# echo 'aaa.com/file-123456.html'|sed 's/\(.+\/\)file-\(.+\)\.html/\1id\?=\2/'
  2. aaa.com/id?=123456
  3. [root@t6 ~]# echo 'aaa.com/file-abcd.html'|sed 's/\(.+\/\)file-\(.+\)\.html/\1id\?=\2/'
  4. aaa.com/id?=abcd
复制代码
回复

使用道具 举报

发表于 2018-5-22 08:20:14 | 显示全部楼层
可以试试以下:

被替换式
  1. (.+\/)file-(.+)\.html
复制代码


替换式
  1. $1id\?=$2
复制代码
回复

使用道具 举报

发表于 2018-5-22 08:26:11 | 显示全部楼层
如果 aaa.com/file- 是固定的,非变量,那试一下

被替换式
  1. aaa.com\/file-(.+)\.html
复制代码


替换式
  1. aaa.com\/id\?=$1
复制代码

点评

测试通过,已经给微信发了10元,遵守诺言! [attachimg]371520[/attachimg] 再次感谢哈!  详情 回复 发表于 2018-5-22 08:43
回复

使用道具 举报

发表于 2018-5-22 08:35:21 来自手机 | 显示全部楼层
wuyou 发表于 2018-5-22 08:26
如果 aaa.com/file- 是固定的,非变量,那试一下

被替换式

就这样,不是元字符不应转义,/ 它不是元字符

点评

sed 里面使用/ ,要转义,所以我看到/ 都想转义。 其他地方使用,可能不用转义。  详情 回复 发表于 2018-5-22 08:41
回复

使用道具 举报

发表于 2018-5-22 08:41:44 | 显示全部楼层
x9tian 发表于 2018-5-22 08:35
就这样,不是元字符不应转义,/ 它不是元字符

sed 里面使用/ ,要转义,所以我看到/ 都想转义。
其他地方使用,可能不用转义。
回复

使用道具 举报

 楼主| 发表于 2018-5-22 08:43:31 | 显示全部楼层
wuyou 发表于 2018-5-22 08:26
如果 aaa.com/file- 是固定的,非变量,那试一下

被替换式

测试通过,已经给微信发了10元,遵守诺言!
webwxgetmsgimg.jpg
再次感谢哈!

点评

呵呵,谢谢支持!  详情 回复 发表于 2018-5-22 08:45
回复

使用道具 举报

发表于 2018-5-22 08:45:14 | 显示全部楼层
zhxy9804 发表于 2018-5-22 08:43
测试通过,已经给微信发了10元,遵守诺言!

再次感谢哈!

呵呵,谢谢支持!
回复

使用道具 举报

 楼主| 发表于 2018-5-22 08:46:59 | 显示全部楼层
再问一下 file-(.+)\.html 这个 .+是啥意思?

点评

.是匹配前一个 而+则是重复1次或多次(合在一起你就懂了  发表于 2018-5-22 09:20
回复

使用道具 举报

发表于 2018-5-22 08:51:46 | 显示全部楼层
. 代表任意字符, + 代表 1个以上(含1个), * 代表0个以上
() 是分组,用来提取 变量,第一个() 里面的值放在变量 $1(或\1),第二个() 里面的值放在变量 $2(或\2),依次类推。

点评

明白了,能给找个相关资料看看吗,系统了解一下!  详情 回复 发表于 2018-5-22 08:59
回复

使用道具 举报

 楼主| 发表于 2018-5-22 08:59:29 | 显示全部楼层
wuyou 发表于 2018-5-22 08:51
. 代表任意字符, + 代表 1个以上(含1个), * 代表0个以上
() 是分组,用来提取 变量,第一个() 里面的 ...

明白了,能给找个相关资料看看吗,系统了解一下!

点评

给你一个简单的介绍 https://blog.csdn.net/okyoung188/article/details/53407021 有专门关于正则表达式的书,有一次我从图书馆抱回好几本书。 如果写php程序或linux shell 程序,很多地方用到正则表达式。 最近  详情 回复 发表于 2018-5-22 09:04
回复

使用道具 举报

发表于 2018-5-22 09:04:55 | 显示全部楼层
zhxy9804 发表于 2018-5-22 08:59
明白了,能给找个相关资料看看吗,系统了解一下!

给你一个简单的介绍 https://blog.csdn.net/okyoung188/article/details/53407021
有专门关于正则表达式的书,有一次我从图书馆抱回好几本书。
如果写php程序或linux shell 程序,很多地方用到正则表达式。
最近为解决discuzX 3.4 在mysql 8.0.11 上安装,用几行 正则表达式轻松解决。

点评

h哈哈,怪不得回答的如此熟练呢,!  详情 回复 发表于 2018-5-22 09:12
回复

使用道具 举报

 楼主| 发表于 2018-5-22 09:12:41 | 显示全部楼层
wuyou 发表于 2018-5-22 09:04
给你一个简单的介绍 https://blog.csdn.net/okyoung188/article/details/53407021
有专门关于正则表达式 ...

h哈哈,怪不得回答的如此熟练呢,!

点评

正则表达式其实挺好玩的,一行命令可以解决很多累死人的活。  发表于 2018-5-22 09:27
折腾5到6天,每天看点你就懂了。  发表于 2018-5-22 09:21
回复

使用道具 举报

发表于 2018-5-22 10:10:32 | 显示全部楼层
测试了下,大大5楼的 正则使用正常。
111.gif

点评

看样子正则表达式,真的有点人工智能的感觉,太方便了!  发表于 2018-5-22 10:59
可以试一下 对 / ? 不转义 被替换式 替换式  详情 回复 发表于 2018-5-22 10:46
回复

使用道具 举报

发表于 2018-5-22 10:46:50 | 显示全部楼层
holley2008 发表于 2018-5-22 10:10
测试了下,大大5楼的 正则使用正常。

可以试一下 对 / ? 不转义

被替换式
  1. aaa.com/file-(.+)\.html
复制代码


替换式
  1. aaa.com/id?=$1
复制代码

点评

测试了下/ ? 不转义 效果一样。 转义符应该使用在有特殊效果的情况下 如替换为aaa.com/\nd?=$1 则转义符必需。  详情 回复 发表于 2018-5-22 11:30
回复

使用道具 举报

发表于 2018-5-22 11:30:50 | 显示全部楼层
wuyou 发表于 2018-5-22 10:46
可以试一下 对 / ? 不转义

被替换式

测试了下/ ? 不转义 效果一样。
转义符应该使用在有特殊效果的情况下
如替换为aaa.com/\nd?=$1 则转义符必需。

点评

没错,实际应用中,可能会多一些需要转义的符。  详情 回复 发表于 2018-5-22 19:59
回复

使用道具 举报

发表于 2018-5-22 14:51:03 | 显示全部楼层
不太懂,围观!
回复

使用道具 举报

发表于 2018-5-22 15:10:59 | 显示全部楼层
我正则表达式都用regex match tracer这个软件来测试的
回复

使用道具 举报

发表于 2018-5-22 17:37:16 | 显示全部楼层
围观码农,表示一句都看不懂...
回复

使用道具 举报

发表于 2018-5-22 19:59:11 | 显示全部楼层
holley2008 发表于 2018-5-22 11:30
测试了下/ ? 不转义 效果一样。
转义符应该使用在有特殊效果的情况下
如替换为aaa.com/\nd?=$1 则转义 ...


没错,实际应用中,可能会多了一些需要转义的字符。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-3-28 18:05

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表