如何在记事本++中删除圆括号外的所有内容

时间:2016-10-13 05:09:53

标签: regex notepad++

我正在尝试使用记事本++从css文件中提取图像网址。 由于所有图像网址都在圆括号内,我正在考虑使用正则表达式删除所有内容(以及之后的所有内容)。 这是一个文本示例:

    text-transform:uppercase;

    font-size:17px;

}

.conTxt .btnGiveAccess{

    width:532px;

    height:145px;

    background:url(http://www.website.com/css/images/btn-give-me-access2.jpg) no-repeat center top;

    margin:0 auto;

    display:block;

}

.conTxt .btnGiveAccess:hover{

    background:url(http://www.website.com/css/images/btn-give-me-access2.jpg) no-repeat center -145px;

}

/*#########################################*/
popup window
/*#########################################*/
/*a {

结果我不想得到以下内容:

http://www.website.com/css/images/btn-give-me-access2.jpg

http://www.website.com/css/images/btn-give-me-access2.jpg

我还尝试使用以下正则表达式删除http://

之前的所有内容
^[^http]*`  Also .*((.*)).*

但它没有用。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

如果其中没有任何网址包含parens,您可以使用\((.*)\)

这与您在上面显示的内容之间的区别在于,使用()

转义外部\(文字的,而不是正则表达式捕获的那些)

答案 1 :(得分:0)

对于给定的文本,以下工作。使用(\A|\))([^()]*)(\(|\Z)的查找文字并将其替换为\r\n。这将留下所需的文本加上一些可以轻松删除的空行,例如通过menu => 修改 => 线路运营 => 删除空行

一个小变化是使用\1\3的替换字符串。这将删除圆括号外的所有内容,留下括号本身和它们之间的文本。这是一个简单的工作,删除所有圆括号,也许用新行替换它们。可以使用[()]+的查找文本并替换\r\n的字符串来完成此操作。

第一个正则表达式的解释。捕获是:

  1. (\A|\)),它会查找缓冲区的开头,\A或关闭括号。
  2. ([^()]*)查找不包含圆括号的字符序列。
  3. (\(|\Z)查找封闭括号或缓冲区末尾\Z
  4. 效果是寻找三种类型的文本。

    1. 从缓冲区开始到第一个打开圆形支架。这符合(\A)([^()]*)(\(|\Z)
    2. 从近距离支架到开放式支架。这符合(\))([^()]*)(\()
    3. 从近端到缓冲区的末尾。这符合(\))([^()]*)(\Z)
    4. 如果有嵌套的圆括号,这可能无法完成所需的工作,但问题没有说明在这种情况下会发生什么。