在 VS2019 替换功能中使用正则表达式时出现意外结果
Unexpected result while using regular expression in VS2019 replace feature
我想使用正则表达式替换代码中的一些文本。我在 VS2019 中使用替换功能。
这是我用来查找的正则表达式: absoluteText_(.*)\((.*), (.*))
这是我用来替换的正则表达式: absoluteText_$1($3)
例如,我想替换此文本“absoluteText_12(A, B, C)”,替换完成后的预期结果是“absoluteText_12(B, C)。 但是当我使用正则表达式时,我得到的结果是“absoluteText_12(C)”。
在组号 2 中,我想取左括号字符和逗号之间的每个字符(关于查找正则表达式的这一部分:((.*), )。我不明白为什么字符B不带字符C,它们都应该被认为是组号3,因此被插入到结果中。
我的正则表达式有什么错误吗?或者是什么导致我得到这些结果?
您当前的模式措辞不当,也没有正确使用捕获组。我会使用这个版本:
Find: absoluteText_(\d+)\([^,]+,\s*(.*?)\)
Replace: absoluteText_()
我想使用正则表达式替换代码中的一些文本。我在 VS2019 中使用替换功能。
这是我用来查找的正则表达式: absoluteText_(.*)\((.*), (.*))
这是我用来替换的正则表达式: absoluteText_$1($3)
例如,我想替换此文本“absoluteText_12(A, B, C)”,替换完成后的预期结果是“absoluteText_12(B, C)。 但是当我使用正则表达式时,我得到的结果是“absoluteText_12(C)”。
在组号 2 中,我想取左括号字符和逗号之间的每个字符(关于查找正则表达式的这一部分:((.*), )。我不明白为什么字符B不带字符C,它们都应该被认为是组号3,因此被插入到结果中。
我的正则表达式有什么错误吗?或者是什么导致我得到这些结果?
您当前的模式措辞不当,也没有正确使用捕获组。我会使用这个版本:
Find: absoluteText_(\d+)\([^,]+,\s*(.*?)\)
Replace: absoluteText_()