我正在尝试使用以下模式查找所有值:
value="4" value="403" value="200" value="201" value="116" value="15"
并将其替换为范围内的值.
我正在使用以下正则表达式来查找模式:
.*"\d+"
我怎样才能更换?
更换 (.*")\d+(")
同 $1x$2
x
你的"范围内的价值" 在哪里?
psxls给出了一个很好的答案,但我认为我的Notepad ++版本略有不同,所以$(美元符号)捕获不起作用.
我有Notepad ++ v.5.9.3,以下是如何完成任务的:
搜索模式:value = \"([0-9]*)\" 并替换为:\ 1(无论你想在该捕获组周围做什么)
防爆.用方括号环绕
[\ 1] - > 会产生值="[4]"
在Notepad ++中替换,按Ctrl+ H打开"替换"菜单.
然后,如果您选中"正则表达式"按钮,并且您希望替换中使用匹配模式的一部分,则必须使用"捕获组"(在谷歌上阅读更多内容).例如,假设您要匹配以下每一行
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]+)"
会更好,因为它更具体,您将确保它只匹配这些行.甚至可以在不使用捕获组的情况下进行替换,但这是一个稍微高级的主题,所以我现在就把它留下:)