我知道如何使用' like'来测试图案。 VB.NET中的运算符,但我想做的是测试可以出现在字符串中的任何点并返回它的模式。
即
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
现在我知道了上述内容,但我想做的是返回与模式匹配的文本。
我可能会遗漏一些非常基本的东西,但是我看起来很久很难挣扎,需要另一种意见。
干杯
答案 0 :(得分:2)
您可以使用以下正则表达式:
\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
答案 1 :(得分:-1)
您需要在控制台中编写字符串'Matches'吗?
如果正确,你必须用双引号封装'匹配'。
Console.WriteLine("Matches")