0
我想創建一個返回一個或多個字符串匹配的正則表達式,它驅使我堅果。與非打印字符的正則表達式問題
(?<=\x03).*?(?=\r)
以上應該是查找ETX(char 3)的開始字符和回車的結束字符。
我想要每個開始和結束字符「塊」之間的文本。
我在做什麼錯?
我想創建一個返回一個或多個字符串匹配的正則表達式,它驅使我堅果。與非打印字符的正則表達式問題
(?<=\x03).*?(?=\r)
以上應該是查找ETX(char 3)的開始字符和回車的結束字符。
我想要每個開始和結束字符「塊」之間的文本。
我在做什麼錯?
其實不理我,它確實有效。認爲在調試期望爲零的匹配屬性期間,我感到困惑。一個小測試證明它是可以的(在VB中)。
Dim TestString1 As String = Chr(3) & "Some Text to Extract 1" & Chr(13)
Dim TestString2 As String = Chr(3) & "Some Text to Extract 2" & Chr(13)
Dim TestString3 As String = Chr(3) & "Some Text to Extract 3" & Chr(13)
Dim TestString As String = TestString1 & " random noise " & TestString2 & " more random noise " & TestString3
Dim Matches As MatchCollection = Regex.Matches(TestString, "(?<=\x03).*?(?=\r)")
Dim Index As Integer = 0
Dim result As New StringBuilder
result.Append("No of Matches found = " & Matches.Count & vbCrLf & vbCrLf)
For Each m As Match In Matches
Index += 1
result.Append(Index & ": " & m.Groups(0).Value & vbCrLf)
Next
MessageBox.Show(result.ToString())
你是如何使用正則表達式?什麼告訴你它不起作用?你在一些編程代碼或某個編輯器中使用它嗎?另外,請張貼一些文字進行測試。 –
正則表達式就是你說的。但是,你是什麼意思開始和結束「塊」?有'SOH,STX,ETX,EOT'控制代碼。也許你需要'(?<= \ x03)。*?(?= \ x04)' – sln
我希望文本只在ascii char 3和ascii char 13之間。 –