求这样一个正则表达式!

nxliu 2003-05-20 09:33:32
我有一个文件里全是常数定义,因为命名规范的更改要修改变量的前缀,希望能通过vs.net的macro来替换,我想用一个正则表达式来解决,要求如下:
把 Public Const LeaveType_Annual As String = "A"
变为 Public Const c_strLeaveType_Annual As String = "A"

也就是加一个常数和类型的前缀,另外如果这个常数如果是定义成大写的,希望也能替换过来,比如:
把 Public Const LEAVETYPE_ANNUAL As String = "A"
变为 Public Const c_strLeaveType_Annual As String = "A"

我想要找的这个字符串应该是两头是“Public Const ”和“As String”,中间是任意字符串,但是不知道如何写这个正则表达式

希望精通正则表达式的朋友们鼎力相助,多谢!!!
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
changbird 2003-05-22
  • 打赏
  • 举报
回复
同意楼上的 呵呵

关键是用Regex ex=new Regex("你的正则表达式");

不过语法是C#的,在VB.net里面稍微改一下就可以用了。
lionzhf 2003-05-21
  • 打赏
  • 举报
回复
Regex ex=new Regex(@"\b(?<=Public Const)[\w\s]*(?=As String)\b");
用这个可以取出你所要的字符串,我试过
nxliu 2003-05-21
  • 打赏
  • 举报
回复
多谢changbird!我在vs.net的宏编辑器里用你的pattern写如下语句,好像不起作用,本来还想替换的:
Sub ConstantConverter()
CType(DTE.ActiveWindow.Selection, TextSelection).StartOfDocument(False)
DTE.Find.FindWhat = "^(Public Const)[\w]+(As String)$"
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr
'DTE.Find.ReplaceWith = "Public Const c_str"
'DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
DTE.Find.Action = vsFindAction.vsFindActionFind
DTE.Find.Execute()
End Sub

会不会是不同的语法?
changbird 2003-05-20
  • 打赏
  • 举报
回复
^(Public Const)[\w]+(As String)$

你先试试这个 :)

如果还有问题 我再改


my QQ : 146646

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧