[英]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.