用於將所有 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”

我正在使用搜尋正規表示式插件。上述替換的正規表示式是什麼?

答案1

我不是 100% 確定,但我認為透過查看插入它支援“PHP”,這意味著您可以嘗試以下模式:

(?:https?\S+?(?=_)|\G(?!^))(?:[^ _]*)\K_
  • (?:- 開啟第一個非捕獲組。
    • https?- 將“http”與可選的“s”字面匹配。
    • \S+?- 惰性匹配中的任何非空白字元。
    • (?=_)- 底線的正向前瞻。
    • |- 交替/或。
    • \G(?!^)- 在上一場比賽結束時確定位置,而不是在開始時。
    • )- 關閉第一個非捕獲組。
  • (?:- 開啟第二個非捕獲組。
    • [^ _]*- 符合空格或底線之外的零個或多個字元。
    • )- 關閉第二個非捕獲組。
  • \K_- 重置匹配緩衝區並匹配底線。

看網路上的示範

相關內容