我需要在多行文本文件中替换下面一行中的字符串“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"
请帮助满足我的条件的正则表达式。
谢谢
答案 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
。请注意,如果您需要在替换文本中包含圆括号,则需要使用反斜杠对其进行转义。