Answers:
在要替换的Notepad ++中,按Ctrl+ H打开“替换”菜单。
然后,如果您选中“正则表达式”按钮,并且要在替换中使用匹配模式的一部分,则必须使用“捕获组”(有关详细信息,请参阅google)。例如,假设您要匹配以下各行
value="4"
value="403"
value="200"
value="201"
value="116"
value="15"
使用.*"\d+"
模式,只想保留数字。然后,您可以在匹配模式中使用捕获组,使用括号(
和)
,如下所示:.*"(\d+)"
。因此,现在在替换中,您只需编写$1
,其中$ 1引用第一个捕获组的值,并将为每个成功匹配返回该数字。例如(.*)="(\d+)"
,如果您有两个捕获组,$1
则将返回字符串value
并$2
返回数字。
因此,使用:
找: .*"(\d+)"
更换: $1
它会回报你
4
403
200
201
116
15
请注意,有许多其他更好的方法可以匹配上述模式。例如,模式value="([0-9]+)"
会更好,因为它更具体,您将确保仅匹配这些行。甚至可以在不使用捕获组的情况下进行替换,但这是一个稍微高级的主题,因此我将暂时保留它:)
$1
对我不起作用。我\1
改用了,那行得通。
\1
适用于所有版本的Notepad ++。 $1
仅适用于较新的版本。
Hex Editor
插件不起作用。在十六进制视图模式下,Notepad ++不显示“ Regular Expression
搜索/替换” 选项。在文本视图模式下,我确实看到了Regular Expression
“搜索/替换” 选项。我正在使用Notepad ++版本6.9.2,这是当前版本。
psxls提供了一个很好的答案,但我认为我的Notepad ++版本略有不同,因此$(美元符号)捕获无效。
我有Notepad ++ v.5.9.3,这是完成任务的方法:
搜索模式:value = \“([[0-9] *)\” 并替换为:\ 1(您要对该捕获组执行的任何操作)
例如 环绕方括号
[\ 1]-> 将产生value =“ [4]”
\1
帮助我保留了该号码,但删除了它后面的引号。我在的文档中有大约7400行tablename.columnname = '12345'
。第一个引号很容易删除,第二个引号是\1
在replace文本框中使用来完成的。谢谢,+ 1
我有记事本++ v6.8.8
查找:[([a-zA-Z])]
替换:[\'\ 1 \']
将产生:$ array [XYZ] => $ array ['XYZ']
找: value="([\d]+|[\d])"
更换: \1
它真的会回报你
4
403
200
201
116
15
js:
a='value="4"\nvalue="403"\nvalue="200"\nvalue="201"\nvalue="116"\nvalue="15"';
a = a.replace(/value="([\d]+|[\d])"/g, '$1');
console.log(a);