【问题标题】:Regex to find all hrefs that contain a path but no "." (dot)正则表达式查找所有包含路径但不包含“。”的href (点)
【发布时间】:2009-10-16 10:32:39
【问题描述】:

我是新手 我正在尝试在记事本 ++ 中创建一个正则表达式来替换所有 href="http://www.reactivemail.com/(any series of charcters)"

基本上我想要的只是在所有href的末尾放一个/,但前提是它不包含点,例如它是.html等文件的路径

这就是我想要找到的东西

href="http://www.reactivemail.com(some path to a directory)"

但忽略href="http:www.reactivemail.com(some path).some extension"

并且想将 / 添加到只进入目录并且最后缺少 / 的 href

这是我正在使用的正则表达式:

(href="http:\/\/www\.reactivemail\.com[^\.*.*"*]*)

替换为\1/

它完美地找到了我想要的东西

仅对于带有 .file 扩展名的 href,它仍然会找到路径并忽略之后的所有内容。而不是因为它包含一个点而忽略所有内容

【问题讨论】:

  • 如果目录名中包含点怎么办?
  • 没有目录确实包含一个点我尝试了你的解决方案,但它不起作用,因为它找到了所有内容直到行尾,例如 href="reactivemail.com/pricing"><span>pricing</span> 而不仅仅是 href="@987654322 @ 然而,它确实包含了所有带有点的内容,如果没有 500 个左右需要更新的链接,我不会打扰

标签: regex notepad++


【解决方案1】:

这有点危险(请参阅我对您问题的评论),但您可以尝试搜索:

(href="http://www.reactivemail.com/[^."]*[^/])"

并替换为

\1/"

【讨论】:

  • 更准确地说:用\1/"替换(href="http:\/\/www\.reactivemail\.com[^.]*[^/])(")
【解决方案2】:

试试这个 (http[s]*\://[^\"]+)/([^\."/]+)" 并替换为\1/\2/"。这应该会捕获每个 http 和 https url,但会丢失带有句点的文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 2011-05-23
    • 1970-01-01
    • 2016-12-07
    • 2015-12-23
    • 1970-01-01
    • 2011-09-23
    相关资源
    最近更新 更多