如何用Regex变量匹配RichTextBox中特定字符串后的内容?
解决方案
要匹配字符串变量之后的所有内容,你需要把变量嵌入到正向零宽后行断言((?<=...))的括号内,同时注意转义变量中的正则特殊字符,避免匹配出错:
' 先转义变量中的正则特殊字符 Dim escapedVar As String = Regex.Escape(stringvariable) ' 构建包含变量的正则表达式 Dim answ As Regex = New Regex($"(?<={escapedVar}).+") Dim match As Match = answ.Match(Richtextbox1.Text)
关键说明
- 正向零宽后行断言
(?<=...)的作用是:确认当前位置之前存在指定内容,但不会将该内容包含在匹配结果中,刚好符合你要排除变量本身、只取后续内容的需求。 - 使用
Regex.Escape()是因为如果你的字符串变量里包含正则元字符(比如.、*、[等),直接拼接会被当成正则语法解析,导致匹配逻辑混乱,转义后这些字符会被当作普通文本处理。
内容的提问来源于stack exchange,提问作者Arun Pa
相关产品推荐
相关产品推荐

