Ed *_*mes 23 regex visual-studio
我在Visual Studio中有一堆赋值操作,我想要反转它们:即
i = j;
会成为
j = i;Run Code Online (Sandbox Code Playgroud)
即在等于之后等于等于之后的所有内容,反之亦然
有没有简单的方法可以做到这一点,在正则表达式引擎中说些什么?
干杯,艾德
Chr*_*ett 31
选择要交换的行,Ctrl + H,然后替换:
{:i}:b*=:b*{:i};
Run Code Online (Sandbox Code Playgroud)
有:
\2 = \1;
Run Code Online (Sandbox Code Playgroud)
将"Look in:"设置为"Selection"
但是,它只处理C/C++样式标识符(通过":i").替换为:
{.*}:b*=:b*{.*};
Run Code Online (Sandbox Code Playgroud)
替换"="两侧的任何内容.
此外,由于您在评论中提到使用ReSharper,您只需突出显示"=",Alt + Enter和"反向分配".
tin*_*tin 15
克里斯的答案略有改善......
按Ctrl + H,然后替换:
{:b*}{[^:b]*}:b*=:b*{[^:b]*}:b*;
Run Code Online (Sandbox Code Playgroud)
有:
\1\3 = \2;
Run Code Online (Sandbox Code Playgroud)
(更好地处理空白,尤其是在行首)
编辑: 对于Visual Studio 2012及更高版本(我在2015年尝试过):替换
(\s*)([^\s]+)\s*=\s*([^\s]+)\s*;
Run Code Online (Sandbox Code Playgroud)
有:
$1$3 = $2;
Run Code Online (Sandbox Code Playgroud)
在 Visual Studio 2015+ 中,选择代码块后,按Ctrl + H(查找和替换窗口)并选中“使用正则表达式”选项,然后:
寻找:(\w+.\w+) = (\w+);
代替:$2 = $1;
例如:
entity.CreateDate = CreateDate;
Run Code Online (Sandbox Code Playgroud)
更改为:
CreateDate = entity.CreateDate;
Run Code Online (Sandbox Code Playgroud)
谢谢@Nagesh 和Revious,添加了提到的详细信息。
| 归档时间: |
|
| 查看次数: |
7701 次 |
| 最近记录: |