【问题标题】:Visual Studio 2008 search and replace regexVisual Studio 2008 搜索和替换正则表达式
【发布时间】:2011-04-20 06:57:24
【问题描述】:

我有一个大型解决方案,其中有很多行需要替换。 在 Visual Studio 中,您可以借助正则表达式进行搜索和替换。

我想替换如下行:

rst.Fields("CustomerName").Value
rst.Fields("Address").Value
rst.Fields("Invoice").Value

收件人:

row("CustomerName").ToString()
row("Address").ToString()
row("Invoice").ToString()

从而保留动态文本部分,这可能会有所不同。

这可能吗?如何实现?

更新,解决方法:
搜索:rst.Fields{\(.*\)}\.Value
替换:rst\1.ToString()

感谢贾里德帕!

【问题讨论】:

  • 可能,是的。不过,我们需要更多细节。哪些部分是不变的?例如,“命令”这个词是不变的吗?还是您会逐个方法地执行此操作?
  • 好的,用一个更好的例子编辑帖子。

标签: regex visual-studio visual-studio-2008 replace


【解决方案1】:

试试下面的

  • 搜索表达式:ASpecificCommand(\(.*\))\.ASpecificProperty
  • 替换表达式:ATotallyDifferentCommand\1.ATotallyDifferentProperty

注意:这不是一个完美的解决方案。由于涉及(s 并因此匹配嵌套的括号,因此正则表达式永远不会是完美的解决方案。但是,它应该为您发布的特定模式完成工作

【讨论】:

  • 非常接近,这确实让我走上了正确的轨道(在正则表达式中使用反向引用)。解决方案需要 {} 而不是 ()。谢谢!
【解决方案2】:

看起来你已经搞定了。这就是所谓的“标记表达式”,您可以在此处查看另一个示例: http://blogs.msdn.com/b/zainnab/archive/2010/09/12/replace-in-files-tagged-expressions-vstipfind0016.aspx

【讨论】:

    【解决方案3】:

    提供的答案和解决方案有助于在消息框上进行查找替换。

    这在 Visual Studio 2008 (VB .NET) 中有效:

    例子:

    MessageBox.Show("Invalid Entry","Error")
    

    查找内容:

    MessageBox.Show{(.*,*)}
    

    替换为:

    Error.ShowError\1\2
    

    结果:

    Error.ShowError("Invalid Entry","Error")
    

    【讨论】:

      猜你喜欢
      • 2017-09-20
      • 1970-01-01
      • 2013-06-14
      • 2020-06-16
      • 2011-03-09
      • 2018-05-25
      • 2010-11-25
      • 2010-10-30
      相关资源
      最近更新 更多