繁体   English   中英

正则表达式匹配多个类文件中的整个 vb.net class

[英]Regex to match an entire vb.net class in a multiple classes file

我有一个包含多个 vb.net 类的文件,例如:

Public Class AddressVerification

    Public SingleAddress As Boolean

    Public Addresses as List(Of Address)

    Public Sub New()

    End Sub

End Class

Public Class Address

    Public ClientId as String

    Public City as String

    Public Zip as String

End Class

我想构建一个正则表达式来获取整个 AddressVerification class 并且我尝试了正则表达式:

(\bPublic Class AddressVerification\b)|(\bEnd Class\b)

全局和多行标志默认打开,示例可以在https://regex101.com/r/XQVp5v/2找到。 如何捕获整个 AddressVerification? (下图)

在此处输入图像描述

如果支持负前瞻,您可以匹配以下所有不以End Class 开头的行

^Public Class AddressVerification(?:\r?\n(?!End Class\b).*)*\r?\nEnd Class\b

解释

  • ^字符串开头
  • Public Class AddressVerification匹配字面意思
  • (?:非捕获组
    • \r?\n(?!End Class\b)匹配换行符并断言右边的内容不是End Class
    • .*匹配整行
  • )*关闭非捕获组并重复 0+ 次
  • \r?\nEnd Class\b匹配换行符后跟End Class

正则表达式演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM