gpt4 book ai didi

c# - 想知道 C# 中的独特之处吗?

转载 作者:行者123 更新时间:2023-11-30 23:04:21 25 4
gpt4 key购买 nike

我有很多如下代码:

AppUtility.EnumToBool(Row["block_friends"].ToString())

我需要将它们转换成这样的东西。

AppUtility.EnumToBool(Row["block_friends"].ToString() == "1")

问题是,我有大约 500 个这样的实例,我想知道是否有自动替换它们的方法?

对于 C# 代码,我需要在 Visual Studio IDE 中使用 Find+Replace 来执行此操作。

我现在有查找部分:AppUtility\.EnumToBool\((.*)\) 但没有值的正则表达式。

最佳答案

在 VS2010 中工作的答案:

1。在某处测试正则表达式

我推荐使用 Regex101为了这个任务。只需将您的示例文本放入顶部并查看其是否有效即可。 This is my result .您可以看到常规文本和变化的文本被捕获在不同的组(颜色)中。

2。重写正则表达式以匹配 VS IDE 正则表达式

有区别。我在 regex101 中使用了 (.*) 来对组内的字符进行分组。在VS IDE中,必须重写为{.*}。如果你想在“替换为”模式中重用该组,你需要在 VS IDE 中编写 \1(而不是在其他地方的 $1)。

来自 regex101 的来源查找模式:AppUtility\.EnumToBool\(Row\[(.*)\]\.ToString\(\)\)

VS IDE 查找模式:AppUtility\.EnumToBool\(Row\[{.*}\]\.ToString\(\)\)

VS IDE 替换模式:行[\1].ToString() == "1"

(已更新)3. 在 IDE 中使用它,看看会发生什么

寻找模式:AppUtility\.EnumToBool\((.*)(\))([^\)])

分割:

  1. AppUtility\.EnumToBool\( - 字面意思是 AppUtility.EnumToBool
  2. (.*) - 在方法中捕获组,但需要 3. 才能工作
  3. (\))([^\)]) - 捕获 ) 字符,并确保另一个字符不是 )(在多个 ) 的情况

VS IDE:

AppUtility\.EnumToBool\({.*}{\)}{[^\)]}

替换为 VS IDE:

AppUtility.EnumToBool(\1)=="1"\2\3

分割:

AppUtility.EnumToBool(\1)=="1" - 在最后一个 (\2\3 - 添加剩余的字符,所以什么都不会被吃掉

旧的错误示例,仅显示替换窗口:

Find and replace within VS IDE using regular expressions and capturing groups

关于c# - 想知道 C# 中的独特之处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49443767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com