Notepad ++ Regex用双引号替换完整的字符串。尝试了所有可能性,没有用

时间:2013-04-09 09:40:18

标签: regex search notepad++ findinfiles

我需要在多行文本文件中替换下面一行中的字符串“something \ something”。双引号中的字符串在每个文件中是不同的,并且该行的其余部分是相同的。还有一些文件可能有\而有些可能没有。我需要用普通文本替换它。说用户名。

我尝试过很多正则表达式,

CType(extensionParams(3),ParameterValue).Value = "." / ".*" / "[A-Za-z]"但一无所获。我正在使用NOTEPAD ++ 6.3.2

查找: CType(extensionParams(3),ParameterValue).Value = "something\something"
注意: 某些文件可能包含\而某些文件可能没有)

替换为: CType(extensionParams(3),ParameterValue).Value = "Username"

请帮助满足我的条件的正则表达式。

谢谢

2 个答案:

答案 0 :(得分:0)

一种解决方案是

(CType(extensionParams(3),ParameterValue).Value = ")[^"]+

并替换为

$1Username

这匹配包含开头报价的第一部分CType(extensionParams(3),ParameterValue).Value = ",并将此部分存储在第一个捕获组中。

[^"]+是一个否定的字符类,它匹配任何非引号的字符,一次或多次。因此,此部分将匹配您要替换的引号之间的字符串。它与收盘价不符。

使用替换字符串中的$1,您可以从第一个捕获组获取内容。

答案 1 :(得分:0)

尝试搜索正则表达式(CType\(extensionParams\(3\),ParameterValue\)\.Value = )"[^"]*"并替换为\1"Username",例如:

CType(extensionParams(3),ParameterValue).Value =“something \ something”

请注意,圆括号()表示捕获,因此必须进行转义以匹配实际括号。捕获大部分搜索字符串以保存在替换文本中的输入。我与[^"]*匹配的引号之间的文本将找到零个或多个不是双引号的字符。如果字符串必须在一行上,则可能值得将该部分更改为[^"\r\n"]

替换使用\1以包含从搜索中匹配的文本。其他一些正则表达式编辑器使用$1用于相同目的。 Notepad ++使用\1。请注意,如果您需要在替换文本中包含圆括号,则需要使用反斜杠对其进行转义。