我有很多代码如下:
AppUtility.EnumToBool(Row["block_friends"].ToString())
我需要将它们转换为类似的东西。
AppUtility.EnumToBool(Row["block_friends"].ToString() == "1")
问题是,我有大约500个这样的实例,我想知道是否会有自动替换这些的方法?
我需要使用Visual Studio IDE中的Find + Replace来执行此操作,以获取C#代码。
我现在有了查找部分:AppUtility\.EnumToBool\((.*)\)
但是没有该值的正则表达式。
答案 0 :(得分:2)
在VS2010中工作的答案:
我建议使用Regex101执行此任务。只需放入示例文本并将模式放在顶部,看看它是否正常工作。 This is my result。您可以看到常规文本和更改文本被捕获在不同的组(颜色)中。
存在差异。我在regex101中使用了(.*)
来对组内的字符进行分组。在VS IDE中,必须将其重写为{.*}
。如果要在“替换为”模式中重用该组,则需要在VS IDE中编写\1
(与其他地方的$1
相对)。
来自regex101的源查找模式:
AppUtility\.EnumToBool\(Row\[(.*)\]\.ToString\(\)\)
VS IDE查找模式:
AppUtility\.EnumToBool\(Row\[{.*}\]\.ToString\(\)\)
VS IDE替换为模式:
Row[\1].ToString() == "1"
查找模式:
AppUtility\.EnumToBool\((.*)(\))([^\)])
故障:
AppUtility\.EnumToBool\(
- 字面意思是AppUtility.EnumToBool (.*)
- 在方法中捕获组,但需要3.工作(\))([^\)])
- 捕获)
个字符,并确保其他字符不是)
(如果有多个)
s VS IDE'd:
AppUtility\.EnumToBool\({.*}{\)}{[^\)]}
替换为VS IDE:
AppUtility.EnumToBool(\1)=="1"\2\3
故障:
AppUtility.EnumToBool(\1)=="1"
- 在最后=="1"
之前添加(
\2\3
- 添加剩余的字符,以便不吃任何东西
旧的错误示例,只显示替换窗口:
答案 1 :(得分:0)
你可以替换
^AppUtility\.EnumToBool\((.*)\)$
与
\1 == "1"