Regex VB.Net帮助使用正则表达式选择字符串的第一个索引

Regex VB.Net帮助使用正则表达式选择字符串的第一个索引,regex,vb.net,textbox,Regex,Vb.net,Textbox,我想知道是否有一种方法可以从下面示例中的正则表达式字符串开始选择 下面的例子也正是我想要它的方式。但是,如果在另一行的前面有匹配的文本,那么它就是选择了错误的文本并突出显示了它 我想知道的是,是否有一种方法可以获取正则表达式字符串的开始索引 If Regex.IsMatch(Me.TextBox1.Text, "\b" + Regex.Escape("is") + "\b") Then Me.TextBox1.SelectionStart = Me.TextBox1.Text.Index

我想知道是否有一种方法可以从下面示例中的正则表达式字符串开始选择

下面的例子也正是我想要它的方式。但是,如果在另一行的前面有匹配的文本,那么它就是选择了错误的文本并突出显示了它

我想知道的是,是否有一种方法可以获取正则表达式字符串的开始索引

If Regex.IsMatch(Me.TextBox1.Text, "\b" + Regex.Escape("is") + "\b") Then
    Me.TextBox1.SelectionStart = Me.TextBox1.Text.IndexOf("is")
    Dim linenumber As Integer = Me.TextBox1.GetLineFromCharIndex(Me.TextBox1.Text.IndexOf("is"))
    Me.TextBox1.SelectionLength = Me.TextBox1.Lines(linenumber).Length
    Me.TextBox1.Focus()
    Me.TextBox1.SelectedText = "is " & Me.TextBox2.Text
该对象具有一个属性,该属性在此处应能帮助您:<代码>匹配。索引将告诉您捕获从何处开始,并告诉您捕获的时间。使用这些工具,您可以将代码更改为如下所示:

If Regex.IsMatch(Me.TextBox1.Text, "\b" + Regex.Escape("is") + "\b") Then
    Dim m as Match
    m = Regex.Match(Me.TextBox1.Text, "\b" + Regex.Escape("is") + "\b")
    Me.TextBox1.SelectionStart = m.Index
    Dim linenumber As Integer = Me.TextBox1.GetLineFromCharIndex(m.Index)
    Me.TextBox1.SelectionLength = Me.TextBox1.Lines(linenumber).Length
    Me.TextBox1.Focus()
    Me.TextBox1.SelectedText = "is " & Me.TextBox2.Text

在您的示例中,我尝试了这一点,并得到以下错误:对非共享成员的引用需要一个带有Regex.MatchOkay的对象,这是因为我的brain编译器快没电了。我将编辑我的答案。我已更新了答案。异常是因为
Regex.Match()
是编译
Regex
对象并调用其实例
Match
方法的静态等价物,但是
Match()
的静态版本的重载要求您提供要搜索的模式和字符串。啊,我确实记得我在某处看到过,非常感谢你的帮助。很有魅力