【问题标题】:Use Find/Replace to replace arbitrary text per line?使用查找/替换来替换每行的任意文本?
【发布时间】:2012-06-13 23:28:10
【问题描述】:

我有一堆对象变量,它们都在它们的声明中初始化,这样:

Private _myObject As New ThisObject("SomeString")

其中ThisObject 是众多对象类型之一,但都使用字符串进行初始化。

我想使用 Visual Studio 的“查找/替换”对话框搜索“As New”,然后用一些文本替换从“As New”到第一组语音标记的所有内容,例如:

编辑

我原来的例子可以用其他方法解决。这个例子更能代表实际问题:

Private _myObjectA As New ThisObjectA("SomeString")
Private _myObjectLongName As New ThisObjectLongName("SomeString")

更改为:

Private _myObjectA = [someCode]"SomeString")
Private _myObjectLongName = [someCode]"SomeString")

显然这在代码中是可行的,读取文本文件,但我特别询问 Visual Studio 查找/替换对话框的功能。

旧示例:

Private _myObjectA As New ThisObjectA("SomeString")
Private _myObjectB As New ThisObjectB("SomeString")

更改为:

Private _myObjectA = [someCode]"SomeString")
Private _myObjectB = [someCode]"SomeString")

【问题讨论】:

    标签: vb.net visual-studio visual-studio-2010


    【解决方案1】:

    您可以在 Visual Studio 中使用正则表达式。然而奇怪的是,VS 不使用通常的 .NET Regex 语法:

    在 VB 中你会这样写:

    s = Regex.Replace(s, "New ThisObject\w*","[somecode]")
    

    【讨论】:

    • 这是最好的通用解决方案。当您的代码在您正在编辑的多行上排成一行时,Kvn 的解决方案将非常有效(而且速度很快)。
    • 如果做了一些研究并注意到“\w”的VS语法不是“:w”,正如我在回答中所说的那样,而是“:a”。 ":w" 只包含字母,":a" 也包含数字。
    【解决方案2】:

    您可以使用Shift + Alt + Arrow keys 和Ctl + K + \ 和Find/Replace 对话框轻松完成此类操作。更多信息请参考my blog。

    更新:按照屏幕截图所示的步骤进行操作。

    【讨论】:

    • 不幸的是,博客已关闭!我可以知道投反对票的原因吗?
    • 因为您的博文没有以任何方式提及我提出的问题,而且我的问题与按列选择文本无关,也与删除空格无关。
    • 看来你没明白我的意思!我已经为您上传了一个屏幕截图,请查看。
    • 哦。我明白你的意思了,现在。不幸的是,我的实际代码并没有以这种方式排列,所以你的回答对我的情况没有用,但这从我原来的问题中并不清楚。我将改变我的问题以更好地适应我的情况。对我的误解表示歉意。
    • 我很欣赏你如何让人们注意到鲜为人知(和聪明)的编辑方式。
    猜你喜欢
    • 2021-01-02
    • 2020-08-03
    • 2013-11-08
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多