繁体   English   中英

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

[英]VB.Net help selecting first index of string with regex

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

下面的示例完全按照我的要求工作,但是如果在另一行之前有匹配的文本,则会选择错误的文本并将其突出显示。

我想知道是否有办法获取正则表达式字符串的起始索引?

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

System.Text.RegularExpression.Match对象具有一个属性,该属性在此处应为您提供帮助: Match.Index Match.Index会告诉你拍摄开始的地方,并Match.Length告诉你它有多长。 使用这些代码,您可以将代码更改为如下所示:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM