删除文本编辑器中的功能,保留参数[重复]

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

【讨论】:

以上是关于删除文本编辑器中的功能,保留参数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用php删除内联样式[重复]

如何在文本突出显示期间保留语法突出显示

如何在表单提交后保留文本(如何在提交后不删除自身?)

仅删除R中的空括号[重复]

kindeditor富文本编辑器支持从word复制粘贴保留格式和图片的插件

12文本处理工具sed