简短版本:我试图构建正则表达式以查明一个字符串是否包含“0,0,0,0”。我所做的每一个尝试都只是将每个字符作为匹配返回,而不是引号内的完整字符串。正则表达式模式在VB.NET中无法正常工作
我想在VB.NET的文本框内的字符串中找到某些文本。我的问题是,不是返回一个匹配,而是返回字符串中的每个字符作为匹配。现在通常我会认为这是我的正则表达式的一个问题,但是由于我已经验证它应该与一些在线工具一起工作,所以我不是100%确定的。
我想匹配的字符串是:
0,0,0,0
我试图找到看起来像这样的匹配字符串:
Image(0,0,0,0,"Path")
我使用了一个名为FastColoredTextBox控制,它允许为特定的字符串设置颜色样式和其他自定义样式的范围。以下是我通常如何添加样式范围。
目前,我添加了让单词可点击的功能,所以我试图让正则表达式为我想要点击的字符串构建匹配。例如:
这里是正则表达式。
当用户点击正在使用正则表达式(实施例的此上文)设置为一个范围的话,它使字点击。当用户点击单词时,它会选择正则表达式中指定的整个范围。除了这个返回每个“0”和“,”作为它自己的匹配,因此只返回/选择单个字符。
这里是我的代码点击单词以获得更好的理解。这不包含正则表达式,上述textchanged事件。
Private Sub tb_VisualMarkerClick(sender As Object, e As VisualMarkerEventArgs)
Dim page As RadPageViewPage = RadPageView1.SelectedPage
Dim txt As FastColoredTextBox = TryCast(page.Controls(0), FastColoredTextBox)
txt.Invalidate()
txt.Selection.Start = New Place((TryCast(e.Marker, RangeMarker).range).Start.iChar, (TryCast(e.Marker, RangeMarker).range).Start.iLine)
txt.SelectionLength = (TryCast(e.Marker, RangeMarker).range).Text.Length
Dim ClickedWord As String = (TryCast(e.Marker, RangeMarker).range.Text)
If ClickedWord = "Path" Then
Dim ofd As New OpenFileDialog
ofd.FileName = ""
ofd.Filter = "Image Files (*.bmp, *.jpg)|*.bmp;*.jpg"
If ofd.ShowDialog = DialogResult.OK Then
txt.InsertText(ofd.FileName)
End If
ElseIf ClickedWord = "0,0,0,0" Then
'What I am going to do when found.
End If
End Sub
对不起,我只是希望有人能帮我解开我的神秘。
你能否添加一个问号,它很难看到你实际要问什么。 –
RegEx在哪里?我知道你觉得RegEx是正确的,但如果它匹配单个字符而不是整个字符串,那几乎肯定是RegEx。 –
我知道你是从迈克尔来的,这正是我的想法。我也尝试过Vjays正则表达式,我也收到单个字符。你可以建议正则表达式来查找该字符串是否包含0,0,0,0? – user1632018