REGEX Visual Studio 2013 查找和更改
REGEX Visual Studio 2013 find and change
我想在测试中更改 class 名称和方法的命名。它们有数百个,它们非常长且难以阅读。下划线会有所帮助。
我创建了正则表达式:
(public class [A-Z][a-z]*(_[A-Z][a-z]*)*)(?<x>[A-Z])
替换模式:_${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])
替换为:_
(我在 http://regexstorm.net/tester 上测试过)
编辑: 现在我坐在我的 VS 工作站前,这是我的测试结果:
它 "kinds of" 工作......奇怪的是,使用以下代码:
public class ThisIsLongClassName
{ }
public class AnotherLongClassName
{ }
public class WhoaThisNameIsEvenLonger
{ }
现在,使用 Shift+Ctrl+F:
进行测试
- 如果我"Find Next",它正确地跳转在替换应该发生的位置之间。所以正则表达式是正确的。
- 但是,当我单击 "Replace" 时,它替换了突出显示行下方的行 。例如,高亮显示在第一行的
sI
上,更改发生在 第二行 行的 rL
上
- 最后,点击 "Replace All" 没有任何反应
我认为 VS2013 是 b0rked。至少我是。
编辑 2: 因此,我建议您创建一个小程序并让它 'have a go' 通过您的文件。将更简单的正则表达式,因为你所要做的就是确保 .TrimStart()
-ed 行以 'public class'
开头,然后用 _
做一个简单的正则表达式替换 ([a-z])([A-Z])
在那条线上。
我想在测试中更改 class 名称和方法的命名。它们有数百个,它们非常长且难以阅读。下划线会有所帮助。
我创建了正则表达式:
(public class [A-Z][a-z]*(_[A-Z][a-z]*)*)(?<x>[A-Z])
替换模式:_${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])
替换为:_
(我在 http://regexstorm.net/tester 上测试过)
编辑: 现在我坐在我的 VS 工作站前,这是我的测试结果:
它 "kinds of" 工作......奇怪的是,使用以下代码:
public class ThisIsLongClassName
{ }
public class AnotherLongClassName
{ }
public class WhoaThisNameIsEvenLonger
{ }
现在,使用 Shift+Ctrl+F:
进行测试- 如果我"Find Next",它正确地跳转在替换应该发生的位置之间。所以正则表达式是正确的。
- 但是,当我单击 "Replace" 时,它替换了突出显示行下方的行 。例如,高亮显示在第一行的
sI
上,更改发生在 第二行 行的rL
上 - 最后,点击 "Replace All" 没有任何反应
我认为 VS2013 是 b0rked。至少我是。
编辑 2: 因此,我建议您创建一个小程序并让它 'have a go' 通过您的文件。将更简单的正则表达式,因为你所要做的就是确保 .TrimStart()
-ed 行以 'public class'
开头,然后用 _
做一个简单的正则表达式替换 ([a-z])([A-Z])
在那条线上。