gpt4 book ai didi

regex - VB.NET 选择字符串匹配模式

转载 作者:行者123 更新时间:2023-12-02 03:22:16 24 4
gpt4 key购买 nike

我知道如何在 VB.NET 中使用“like”运算符测试模式,但我想做的是测试可以出现在字符串中任何位置的模式并返回它。

Dim _MyString As String = "Dave 01-LYJX01PC01 XXYZABC"
Dim _MyString2 As String = "Dave XXYZABC 01-LYJX01PC01"

If _MyString LIKE "##-????##??##" Then
Console.WriteLine(_MyString )
End If

现在我知道了上面的内容,但我想做的是返回与模式匹配的文本。

我可能在这里遗漏了一些非常基本的东西,但我看起来很长时间都在挣扎,需要其他意见。

干杯

最佳答案

您可以使用以下正则表达式:

\d{2}-\p{L}{4}\d{2}\p{L}{2}\d{2}

参见 demo

如果它是一个始终是一个完整单词的子字符串,请用单词边界将此模式括起来:\b\d{2}-\p{L}{4}\d{2}\p{L }{2}\d{2}\b

VB.NET 片段:

Dim my_rx As Regex = New Regex("\d{2}-\p{L}{4}\d{2}\p{L}{2}\d{2}")
Dim my_matches As List(Of String) = my_rx.Matches("Dave 01-LYJX01PC01 XXYZABC").Cast(Of Match)().Select(Function(m) m.Value).ToList()
Dim my_matches2 As List(Of String) = my_rx.Matches("Dave XXYZABC 01-LYJX01PC01").Cast(Of Match)().Select(Function(m) m.Value).ToList()

更新

由于在输入字符串中总是有 1 个匹配项,因此您可以使用简单的代码:

Dim my_result As Match = my_rx.Match("Dave XXYZABC 01-LYJX01PC01")
If my_result.Success Then
Console.WriteLine(my_result)
End If

参见 IDEONE demo

关于regex - VB.NET 选择字符串匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32520890/

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