REGEX Visual Studio 2013查找和更改

apukineimakiapudjuh

我想在测试中更改类名和方法的命名。它们有数百个,它们很长且很难阅读。下划线会有所帮助。

我创建了REGEX:

(public class [A-Z][a-z]*(_[A-Z][a-z]*)*)(?<x>[A-Z])

替换模式: $1_${x}

这给出了我的示例:发件人: public class VeryLongClassNameTestScenarioTwentySeven

到: public class Very_LongClassNameTestScenarioTwentySeven

下次使用: public class Very_Long_ClassNameTestScenarioTwentySeven

下次使用: public class Very_Long_Class_NameTestScenarioTwentySeven

使用多次后,所有名称都应更改。您能帮我找到立即执行的正则表达式吗?

我想VS中的正则表达式不支持将字母从大写转换为小写?

谢谢

佩波卢安

我现在无法访问VS工作站,但是我认为以下方法应该有效:

找: (?<=public class .*?)([a-z])([A-Z])

用。。。来代替: $1_$2

(我在http://regexstorm.net/tester上进行了测试


编辑:现在我坐在VS工作站的前面,这是我的测试结果:

它的“种类”工作……奇怪的是,它具有以下代码:

public class ThisIsLongClassName
{ }

public class AnotherLongClassName
{ }

public class WhoaThisNameIsEvenLonger
{ }

现在,用Shift+ Ctrl+进行测试F

  • 如果我执行“查找下一个”,它将进行替换的位置之间正确跳转因此正则表达式是正确的。
  • 但是,当我单击“替换”时,它将替换突出显示的行下方的行例如,亮点是上sI的第一行的,这种变化发生在rL所述的第二线
  • 最后,单击“全部替换”不会执行任何操作

我认为VS2013很不错。至少我的是。


编辑2:因此,我建议您创建一个小程序,让它“遍历”您的文件。正则表达式会简单得多,因为您要做的就是确保.TrimStart()-ed行以开头'public class',然后在该行上执行一个简单的正则表达式替换为([a-z])([A-Z])with$1_$2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章