【问题标题】:Standardizing string comparison syntax using Find & Replace使用 Find & Replace 标准化字符串比较语法
【发布时间】:2014-05-15 19:44:27
【问题描述】:

我想标准化在 C# 文件中比较两个字符串时使用的语法。所以我想使用 Visual Studio 2013 的查找和替换功能来更改用于将字符串文字与字符串变量进行比较的语法。

例如,我想进行以下替换。

  • "something".Equals( myStr ) 变为 myStr == "something"
  • "something".Equals( myObj.myStr ) 变为 myObj.myStr == "something"
  • myStr.Equals( "something" ) 变为 myStr == "something"
  • myObj.myStr.Equals( "something" ) 变为 myObj.myStr == "something"

我无法对所使用的特定字符串文字或变量的命名方式做出任何假设。使这成为可能的正则表达式语法是什么?

【问题讨论】:

    标签: c# regex visual-studio replace visual-studio-2013


    【解决方案1】:

    您必须对每种不同类型的字符串进行两次替换:

    ("[^"]+")\.Equals\(\s+(\S+)\s+\)
    

    将前两种类型替换为$2 == $1

    regex101 demo.

    还有:

    (\S*?)\.Equals\(\s+("[^"]+")\s+\)
    

    后两种类型替换为$2 == $1

    regex101 demo

    【讨论】:

    • 不错!我几乎完成了手动更换,但这种方式更酷。它不适用于否定,但也许下次。
    • @HappyNomad 好吧,正则表达式指定 .Equal 参加比赛,这可能就是原因。现在您知道了,您可以更改该位以使正则表达式适应您的要求。
    猜你喜欢
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    相关资源
    最近更新 更多