删除文本编辑器中的功能,保留参数[重复]
Posted
技术标签:
【中文标题】删除文本编辑器中的功能,保留参数[重复]【英文标题】:Remove function in text editor, leave parameter [duplicate] 【发布时间】:2019-10-03 03:08:51 【问题描述】:我正在从一个项目更新旧代码,它有数千个旧的 php mysql_real_escape_string() 调用。
问题是我无法进行搜索替换,因为我需要将参数保留在 () 中,然后从调用中删除关闭的 )。这可以在像 sublime 或 vscode 这样的编辑器中完成吗?
【问题讨论】:
【参考方案1】:针对您的具体问题(我使用的是 Sublime Text 3)
示例字符串:
mysql_real_escape_string(parameter)
查找模式(注意我们需要对函数的括号进行转义):
mysql_real_escape_string\((.*?)\)
替换:
new_fun(\1)
这将导致:
new_fun(parameter)
我们匹配旧函数,捕获第1组中的参数。然后替换为新函数,并使用\1
将参数(第1组中捕获)放入里面
现场示例:https://regex101.com/r/OqOGGX/1
【讨论】:
【参考方案2】:您可以在 Sublime Text 3 中使用捕获组进行搜索和替换。因此,您可以捕获参数并使用反向引用在替换文本中引用它。
在正则表达式中捕获组使用特殊的括号字符来“捕获”匹配项,并使它们在“反向引用”$1
、$2
等中可用,它们就像包含匹配组的变量。
-
假设我们有一个字符串:
SOMETHING_UNWANTEDMY_FIRST_CAPTURED_WORDSOMETHING_UNWANTEDMY_SECOND_CAPTURED_WORDSOMETHING_UNWANTED
-
使用正则表达式查找:
SOMETHING_UNWANTED(MY_FIRST_CAPTURED_WORD)SOMETHING_UNWANTED(MY_SECOND_CAPTURED_WORD)SOMETHING_UNWANTED
-
替换使用捕获组:
$1$2
-
结果:
MY_FIRST_CAPTURED_WORDMY_SECOND_CAPTURED_WORD
【讨论】:
以上是关于删除文本编辑器中的功能,保留参数[重复]的主要内容,如果未能解决你的问题,请参考以下文章