在所有 URL 中用 - 替换 _ 的正则表达式

在所有 URL 中用 - 替换 _ 的正则表达式

我在 WordPress 页面中有很多 URL,它们_(下划线)像这样: https://wpg.meditationyoga.in/Peace_research_studies/ 并需要更换_-(破折号)得到这个: https://wpg.meditationyoga.in/Peace-research-studies/

但必须使用正则表达式,仅在 URL 中进行替换,而不是在其他元素(例如 id=”attachment_1076″ 或 id=”grad_table”)中进行替换

我正在使用 Search Regex 插件。上述替换的正则表达式是什么?

答案1

我不是 100% 确定,但我认为通过观察插入它支持“PHP”,这意味着你可以尝试如下模式:

(?:https?\S+?(?=_)|\G(?!^))(?:[^ _]*)\K_
  • (?:- 打开第一个非捕获组。
    • https?- 与可选的“s”逐字匹配“http”。
    • \S+?- 在惰性匹配中,任何非空白字符。
    • (?=_)- 对下划线进行正向预测。
    • |- 交替/或。
    • \G(?!^)- 在上一场比赛结束时断言位置,而不是在开始时。
    • )- 关闭第一个非捕获组。
  • (?:- 打开第二个非捕获组。
    • [^ _]*- 匹配零个或多个除空格或下划线之外的字符。
    • )- 关闭第二个非捕获组。
  • \K_- 重置匹配缓冲区并匹配下划线。

参见在线演示

相关内容