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

时间:2012-01-26 09:43:07

标签: regex vb.net string richtextbox underline

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

\ul\i0 hello friend\ulnone\i

但普通文字看起来像下划线。我想要做的是点击按钮,rtfbox应该选择下划线的下一段文字。一段示例文本是:

hello [friend your] house [looks] amazing.

想象方括号内的单词是带下划线的。当我第一次点击button1时,应该选择“friend your”,然后在下一次单击“look”时应该选择。继续前进并继续选择它的应用类型。我知道这可以使用正则表达式来完成,但无法构建逻辑。

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

1 个答案:

答案 0 :(得分:1)

正则表达式将是

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"