gpt4 book ai didi

.net - 如何检查 RegEx 是否具有正确的语法?

转载 作者:行者123 更新时间:2023-12-01 10:51:39 25 4
gpt4 key购买 nike

我想知道RegEx中是否存在任何方法检查表达式是否具有有效语法的类。

我不是说如果正则表达式匹配字符串或类似的东西,那么“IsMatch”或“Success”方法对我没有帮助。

为了理解我,例如在使用 RegEx.Match 时使用此表达式的方法会抛出异常,因为该表达式的语法无效:

"\\\" 

(没有双引号)

我已经检查了正则表达式类方法,但找不到任何类似“tryparser”的方法。

然后检查表达式是否具有有效语法,我正在这样做:

Try
Regex.Match(String.Empty, "\")
Return True
Catch
Return False
End Try

只是我想知道我是否可以通过直接从 regex 的方法返回一个值来简化代码类或将 regex 的结果转换为 bool 值类方法。

UPDATE:

我在执行时创建 RegEx,外部工具对我没有帮助。

enter image description here

最佳答案

从技术上讲,您可以使用 Regex 的构造函数...

Private Shared Function IsRegexValid(str As String) As Boolean
Dim result As Boolean
Try
Dim rx as Regex = New Regex(str)
result = True
Catch ex As ArgumentException
result = False
End Try
Return result
End Function

或构建Regex 对象或返回Nothing...的方法

Private Shared Function TryBuildRegex(str As String) As Regex
Dim result As Regex
Try
result = New Regex(str)
Catch ex As ArgumentException
result = Nothing
End Try
Return result
End Function

然后

Dim isvalid As Boolean = IsRegexValid("\")

Dim rx As Regex = TryBuildRegex("\")

If rx IsNot Nothing Then
End If

关于.net - 如何检查 RegEx 是否具有正确的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18735230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com