【发布时间】:2019-01-16 11:07:10
【问题描述】:
我有一些链接如下。
http://www.example.com/excel.aspx
http://www.example.com:80/word.aspx
http://www.example.com:80/powerpoint.aspx
http://www.example.com:80/pdf.aspx
http://www.example.com:80/barcode.aspx
http://www.example.com/ocr.aspx
http://www.example.com/email.aspx
http://www.example.com/project.aspx
& 我想在单个正则表达式模式或单个正则表达式行中重写 URL,如下所示。
https://www.example.com/excel
https://www.example.com/word
https://www.example.com/powerpoint
https://www.example.com/pdf
https://www.example.com/barcode
https://www.example.com/ocr
https://www.example.com/outlook
https://www.example.com/project
如果您检查和比较,我已将电子邮件替换为替换 URL 中的 Outlook。
我可以匹配以下模式 .*/(\w+).aspx 并替换为 https://www.example.com/$1 但我找不到替换 的方法带有 outlook 的电子邮件。演示https://regex101.com/r/71huIx/24
类似于http://www.rexegg.com/regex-trick-conditional-replacement.html 但没有池或字典。但是,如果池或字典可以是正则表达式本身的一部分,那么它就可以了。原因是,我有带有规则的 txt 文件,其中 line1 是正则表达式,而 line2 是替换。
任何想法我该怎么做?
【问题讨论】:
-
也许用两个正则表达式而不是一个?首先规范化并剥离
.aspx,其次,将电子邮件重定向到outlook。这让事情变得容易多了。 -
@Corion,谢谢你的建议。是的,这是一种解决方案,但是最好在单个正则表达式中完成。原因是,这个示例包含一个区别,电子邮件/前景。实际上,存在很多差异,因此每个差异都会有 2 个正则表达式。
标签: regex replace conditional pcre