[英]Notepad++ replace text with RegEx search result
我想用正则表达式的结果替换另一个文件中的标准字符串。 标准文本如下所示:
<xsl:variable name="ServiceCode" select="###"/>
我想将###替换为服务代码,稍后可以从该URL在同一文件中找到:
<a href="/Services/xyz" target="_self">
正则表达式(?<=\\/Services\\/)(.*)(?=\\" )
返回所需的服务代码” xyz“。
因此,我打开了Notepad ++,在“查找内容”中添加了“ ###”,在“替换为”部分中添加了此RegEx,并期望将###
文本替换为xyz
。 但是我得到了这个结果:
<xsl:variable name="ServiceCode" select="?<=/Services/.*?=" "/>
我是RegEx的新手,在替换部分中是否需要使用与查找字符串不同的语法? 有人可以提示我如何达到所需的结果吗? 目的是使大量具有相似结构的文件标准化,因为现在所有服务代码都在文件中的多个位置进行了硬编码。 谢谢。
搜索:( (?s)###(?=.*/Services/([^"]+)")
并替换为: $1
(?s)
使点也与换行符匹配(np ++中还有一个复选框) [^"]
匹配的字符不是 "
替换$1
对应于捕获第一个带括号的子模式。
我不是RegEx的专家,但我认为我可以提供帮助。 看来您可能会走错路了。 您正在使用的正则表达式搜索通常会像这样工作:
RegEx中的括号()
允许您选择搜索的一部分,并在替换部分中使用。
您将(?<=\\/Services\\/)(.*)(?=\\" )
放入Notepad ++中的“查找内容”部分。
然后,在“替换为”部分中,可以使用\\1
或\\2
或\\3
将搜索内容替换为(?<=\\/Services\\/)
或(.*)
或(?=\\" )
分别搜索。
根据文件的结构,您需要使用RegEx搜索来选择两行代码(以及所需的特定部分),然后使用\\1\\2\\3
等的组合来完全替换所有内容是,除了###,您可以将其替换为与xyz
关联的\\number
。
有关更多信息,请参见http://docs.notepad-plus-plus.org/index.php/Regular_Expressions 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.