[英]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.