我需要使用模式捕获一个单词并存储在某个地方以用于替换操作:
例如,我有这个文本
ab iiids as sasas md aisjaij as asijasija
我可以使用以下模式捕获第一个空格之前的所有内容:
.*?(?=[" "])
假设我可以使用’$’代表搜索和替换中的匹配,所以我想在替换字段中包含以下内容
INSERT INTO table (value) VALUES ("$")
找不到解决方案.
这甚至可能吗?
解决方法
是的,$&或$0表示替换字符串中的整个匹配:
Find what: .*?(?=[ ]) Replace with: INSERT INTO table \(value\) VALUES \("$0"\)
请注意,您不需要字符类中的引号.否则你的比赛也将在报价处停止.还要注意,还有另一个问题,你必须在替换字符串中转义括号(感谢acdcjunior注意到).这是因为Notepad使用boost,它支持括号分隔的条件结构.
使用您的输入,这将导致
INSERT INTO table (value) VALUES ("ab") iiids INSERT INTO table (value) VALUES ("as") sasas INSERT INTO table (value) VALUES ("md") aisjaij INSERT INTO table (value) VALUES ("as") asijasija
对于更高级的用例,您可以将正则表达式的部分包装在括号中,并引用它们与$1,$2等匹配的子字符串.
顺便说一下,更明确的模式是:
^[^ ]*(?=[ ])
这可以确保您不会在不需要的地方获得其他匹配项.
最后,您可以在替换字符串中执行here is a reference项所有操作.