Regex 使用正则表达式从rtf中选择带下划线的文本

Regex 使用正则表达式从rtf中选择带下划线的文本,regex,vb.net,string,richtextbox,underline,Regex,Vb.net,String,Richtextbox,Underline,我想选择下一段带下划线的文本。您可以看到richtextbox的rtf具有以下下划线文本代码: \ul\i0 hello friend\ulnone\i 但是普通文本看起来像是带下划线的。我想做的是点击按钮,rtfbox应该选择下一段带下划线的文本。一段文本示例如下: hello [friend your] house [looks] amazing. 想象一下,方括号内的单词有下划线。当我第一次单击按钮1时,应选择您的朋友,下一次单击时,应选择相貌。不断前进,不断选择它的应用类型。我知道这

我想选择下一段带下划线的文本。您可以看到richtextbox的rtf具有以下下划线文本代码:

\ul\i0 hello friend\ulnone\i
但是普通文本看起来像是带下划线的。我想做的是点击按钮,rtfbox应该选择下一段带下划线的文本。一段文本示例如下:

hello [friend your] house [looks] amazing.
想象一下,方括号内的单词有下划线。当我第一次单击按钮1时,应选择您的朋友,下一次单击时,应选择相貌。不断前进,不断选择它的应用类型。我知道这可以用正则表达式完成,但不能建立逻辑

任何帮助都将不胜感激。非常感谢:D

正则表达式将

Dim pattern As String = "\\ul\\i0\s*((?:(?!\\ulnone\\i).)+)\\ulnone\\i"
解释

\\ul\\i0 # the sequence "\ul\i0" \s* # any number of white space ( # begin group 1: (?: # non-capturing group: (?! # negative look-ahead ("not followed by..."): \\ulnone\\i # the sequence "\ulnone\i" ) # end negative look-ahead . # match next character (it is underlined) )+ # end non-capturing group, repeat ) # end group 1 (it will contain all underlined characters) \\ulnone\\i # the sequence "\ulnone\i"
非常感谢。它工作得很好,但只有一个问题。段落开头有\pard\ul而不是\ul\i0。如何让正则表达式选择这些情况而不必构建另一个?有点像,如果pard出现了,那么就把它带到现场。对不起,我不清楚OP@xhammer:你对正则表达式了解多少?因为,如果这对你来说是个问题,我建议你不要使用正则表达式,直到你对它们有了更多的了解。话虽如此,请使用?:\\ul\\i0\\pard\\ul。