在文本编辑器中删除函数,保留参数
Remove function in text editor, leave parameter
我正在更新项目中的旧代码,它有数千个旧的 php mysql_real_escape_string() 调用。
问题是我无法执行搜索替换,因为我需要将参数保留在 () 中,然后从调用中删除结尾的 )。这可以在像 sublime 或 vscode?
这样的编辑器中完成吗?
您可以在 Sublime Text 3 搜索和替换中使用捕获组。因此,您可以捕获参数并使用 back-reference 在替换文本中引用它。
正则表达式中的捕获组使用特殊的括号字符来 "capture" 匹配并使它们在 "back-references" </code>, <code>
等中可用,就像包含的变量匹配组。
- 假设我们有一个字符串:
SOMETHING_UNWANTEDMY_FIRST_CAPTURED_WORDSOMETHING_UNWANTEDMY_SECOND_CAPTURED_WORDSOMETHING_UNWANTED
- 使用正则表达式查找:
SOMETHING_UNWANTED(MY_FIRST_CAPTURED_WORD)SOMETHING_UNWANTED(MY_SECOND_CAPTURED_WORD)SOMETHING_UNWANTED
- 使用捕获组替换:
</code></p>
<ol start="4">
<li><strong>结果</strong>:</li>
</ol>
<p><code>MY_FIRST_CAPTURED_WORDMY_SECOND_CAPTURED_WORD
针对您的具体问题(我使用的是 Sublime Text 3)
示例字符串:
mysql_real_escape_string(parameter)
查找模式(注意我们需要转义函数的括号):
mysql_real_escape_string\((.*?)\)
替换:
new_fun()
这将导致:
new_fun(parameter)
我们匹配旧函数,并捕获组1中的参数。然后替换为新函数,并使用
将参数(捕获在组1中)放入其中
我正在更新项目中的旧代码,它有数千个旧的 php mysql_real_escape_string() 调用。
问题是我无法执行搜索替换,因为我需要将参数保留在 () 中,然后从调用中删除结尾的 )。这可以在像 sublime 或 vscode?
这样的编辑器中完成吗?您可以在 Sublime Text 3 搜索和替换中使用捕获组。因此,您可以捕获参数并使用 back-reference 在替换文本中引用它。
正则表达式中的捕获组使用特殊的括号字符来 "capture" 匹配并使它们在 "back-references" </code>, <code>
等中可用,就像包含的变量匹配组。
- 假设我们有一个字符串:
SOMETHING_UNWANTEDMY_FIRST_CAPTURED_WORDSOMETHING_UNWANTEDMY_SECOND_CAPTURED_WORDSOMETHING_UNWANTED
- 使用正则表达式查找:
SOMETHING_UNWANTED(MY_FIRST_CAPTURED_WORD)SOMETHING_UNWANTED(MY_SECOND_CAPTURED_WORD)SOMETHING_UNWANTED
- 使用捕获组替换:
</code></p>
<ol start="4">
<li><strong>结果</strong>:</li>
</ol>
<p><code>MY_FIRST_CAPTURED_WORDMY_SECOND_CAPTURED_WORD
针对您的具体问题(我使用的是 Sublime Text 3)
示例字符串:
mysql_real_escape_string(parameter)
查找模式(注意我们需要转义函数的括号):
mysql_real_escape_string\((.*?)\)
替换:
new_fun()
这将导致:
new_fun(parameter)
我们匹配旧函数,并捕获组1中的参数。然后替换为新函数,并使用