Sublime text 2:用序列替换

时间:2014-08-17 02:50:08

标签: sublimetext2

我有这个:

    private void radioButton34_CheckedChanged(object sender, EventArgs e)
    {

    if (radioButton.Checked == true)
        { //blah}
    }

    private void radioButton35_CheckedChanged(object sender, EventArgs e)
    {

    if (radioButton.Checked == true)
        { //blah}
    }

但它们是100个按钮(不是开玩笑) 我想用序列中的'radioButtonX.Checked'替换'radioButton.Checked' radioButton.Checked他找到了,其中X从34开始,到100结束

有可能吗? 如果我希望X以20或其他任何数字开始怎么办? (诺布在这里)

2 个答案:

答案 0 :(得分:3)

1/1步解决方案
命中替换(⌥⌘F ctrl + shift + F (我猜)或Find→Replace... )。
在激活了RegEx((?<=radioButton)(\d+)(_CheckedChanged(?:\n|.)*?radioButton))的情况下搜索.*。 (见下面有关正则表达式的解释)
并替换为:\1\2\1
正则表达式:

  • (?<=radioButton):字符串以radioButton
  • 开头
  • (\d+):后面跟着一堆数字,我们将其存储在\ 1
  • (_CheckedChanged(?:\n|.)*?radioButton):它本身后跟_CheckedChange,任意数量的字符和newLine字符,以及radioButton,它存储在\ 2
  • 用\ 1 \ 2 \ 1替换所有内容,这意味着:保留数字,之后是什么,然后重新输入数字

2/2步解决方案
更通用的解决方案(不限于2位数字) 启动搜索:( ⌘F Ctrl + F Find→Find...)。确保在左侧选择了正则表达式框(.*)。

搜索:(?<=radioButton)\d+(?=_CheckedChanged)

  • (?<=radioButton):radioButton应位于您搜索的内容之前
  • \d+是任何数字,但至少有一个
  • (?=_CheckedChanged):数字必须跟_CheckedChanged

搜索所有这些。复制结果。将所有光标移动到所需位置,然后粘贴。

如果您有任何疑问: - )

PS:
enter image description here

答案 1 :(得分:2)

这可能是一个愚蠢的回应,但是如果不在其他任何地方使用_CheckedChanged那么它应该可行。

  1. 查找全部“_CheckedChanged(”
  2. 使用左箭头键转到X的末尾(注意多个游标)
  3. 按住shift并按两次左箭头键选择X
  4. 复制,然后使用箭头键移动到radioButton.Checked并点击粘贴
  5. 我刚才意识到你说过100.显然,只有X是相同的位数,上述想法才有效。你必须在之后纠正第100个。

    肯定有更好的方法,但我认为应该做的工作。 100个单选按钮!?