【问题标题】:Regex: Find/Replace All Substrings Without a Given String Before?正则表达式:查找/替换之前没有给定字符串的所有子字符串?
【发布时间】:2011-02-11 15:12:52
【问题描述】:

我需要找到之前没有给定字符串的所有字符串。

例如:

Find: "someValue"

**所有带有“function(”的结果都应该被忽略

Visual Studio 正则表达式会找到这个

value = someValue

并且忽略看起来像这样的东西

function(someValue)

最好的方法是什么?

感谢您的帮助!

【问题讨论】:

    标签: visual-studio regex replace


    【解决方案1】:

    你可以使用消极的后视:

    (?<!function\()someValue
    

    【讨论】:

      【解决方案2】:

      你说

      Visual Studio 正则表达式会发现:

      结合你的问题的标题,这让我觉得你正在尝试在 Visual Studio 的搜索和替换对话框中做一些事情,而不是在应用程序中使用正则表达式。

      如果是这样,那么我认为你可能不走运; Visual Studio 的正则表达式不是很强大,而且它们的语法很奇怪,似乎在其他任何地方都没有使用过!

      我的建议是使用不同的文本编辑器,或者在 .NET 应用程序(或 PowerShell 脚本)中使用 SilentGhost 描述的正则表达式为您进行替换。当我需要在编辑器中做正则表达式的东西而 Studio 没有删减它时,我倾向于使用 TextPad。它不是很漂亮,但它很强大,并且有很好的宏支持。

      顺便说一句,如果你想使用 PowerShell 来做,这将搜索foo.js,并将输出复制到fooNew.js

      (get-content D:\junk\foo.js) -replace
          '(?<!function\()someValue', 'someOtherValue' > D:\junk\fooNew.js
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-24
        • 2011-10-02
        • 1970-01-01
        • 1970-01-01
        • 2018-06-12
        • 2014-04-01
        相关资源
        最近更新 更多