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之间。 –