0

我使用 Notepad++ 使用正则表达式进行搜索和替换,并且我需要用其他内容替换多行。我可以用一个命令来做到这一点吗?

例子:

"../../../commons/js/site-name.com__file-name.js"
"../dlds/file.css"

或者

anytext "../../../commons/js/site-name.com__file-name.js" text
something "../dlds/file.css" anytext

或者

<script src="../../../Folder/js/site-name.com__file-name.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="/folder/file.css" />

输出应该是

"/resources/common.js"
"/resources/common.css"

鉴于:

  • up dir ../ 正在改变(有些是一个 ../ 一些更多 ../../../ 等等,所以我需要它来为任意数量的 ../ 这样做),或者它可能完全丢失比如:“/dlds/file.css”。
  • 示例中的这两行并不完全紧随其后,也不是在文本的开头,而是在文本的任何位置。
4

3 回答 3

1

搜索^.+/(filename.js|style.css)"$

用。。。来代替"/resources/$1"

如果您想获取任何文件名,而不仅仅是 filename.js 或 style.css,请使用此

^.+\/(.+)(?!\/)"$

并使用相同的替换。

例如:http ://rubular.com/r/h1IsZK8nry

于 2012-10-17T09:29:47.107 回答
0

寻找:

\.\..+/([^\.]+\.\w+)

代替:

/resources/\1

更新:

如果你只想替换 filename.js 或 style.css 找到:

[\./]{1}.+/(filename.js|style.css)

用。。。来代替

/resources/\1
于 2012-10-17T09:26:42.947 回答
0

怎么样:

搜索:"(?:\.\./)+.*/([^.]+\.\w+)"
替换为:"/ressources/$1"

如果你想替换new.jsnew.css做:

搜索:"(?:\.\./)+.*/[^.]+(\.\w+)"
替换为:"/ressources/new$1"

对于匹配也以开头的网址/

搜索:"(?:(?:\.\./)+.*?)?/([^.]+\.\w+)"
替换为:"/ressources/new$1"

于 2012-10-17T12:53:11.163 回答