如何将所有stringreplace为Notepad ++中每个string中包含的数字?
我试图find以下模式的所有值:
value="4" value="403" value="200" value="201" value="116" value="15"
并用范围内的值replace它。
我正在使用以下正则expression式来查找模式:
.*"\d+"
我如何做replace?
在Notepad ++中进行replace, 按Ctrl + H打开“replace”菜单。
然后,如果您选中“正则expression式”button,并且您希望replace为使用匹配模式的一部分,则必须使用“捕获组”(请参阅google上的更多内容)。 例如,假设您想要匹配以下每一行
value="4" value="403" value="200" value="201" value="116" value="15"
使用.*"\d+"
模式,只想保留数字。 然后,您可以使用括号(
和)
在匹配模式中使用捕获组,如下所示: .*"(\d+)"
。 所以现在在你的replace中,你可以简单地写$1
,其中$ 1引用第一个捕获组的值,并将返回每个成功匹配的数字。 如果您有两个捕获组,例如(.*)="(\d+)"
, $1
将返回stringvalue
, $2
将返回该数字。
所以通过使用:
查找: .*"(\d+)"
replace: $1
它会回报你
4 403 200 201 116 15
请注意,有许多替代和更好的方式来匹配上述模式。 例如,模式value="([0-9]+)"
会更好,因为它更具体,你可以肯定它只会匹配这些行。 甚至可以在不使用捕获组的情况下进行replace,但是这是一个稍微高级的话题,所以我现在就离开它:)
psxls给了一个很好的答案,但我认为我的Notepad ++版本稍有不同,所以$(美元符号)捕获不起作用。
我有Notepad ++ v.5.9.3 ,这里是你如何完成你的任务:
search模式: value = \“([0-9] *)\”并replace为: \ 1 (无论你想要做的捕获组周围)
防爆。 环绕着方括号
[\ 1] – > 会产生值=“[4]”
replace(.*")\d+(")
用$1x$2
其中x
是你的“范围内的价值”。
我有Notepad ++ v6.8.8
查找 :[([a-zA-Z])]
replace :[\'\ 1 \']
将产生:$ array [XYZ] => $ array ['XYZ']
查找: value="([\d]+|[\d])"
replace: \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);