2012-01-26 8 views
0

我想選擇下劃線的下一段文本。您會發現richtextbox的RTF具有下劃線文本的以下代碼:使用正則表達式從rtf中選擇帶下劃線的文本

\ul\i0 hello friend\ulnone\i 

但是普通文本看起來像下劃線。我想要做的是點擊按鈕rtfbox應該選擇下劃線的下一段文本。示例中的一段文字是:

hello [friend your] house [looks] amazing. 

想象方括號內的單詞帶下劃線。當我第一次點擊button1「朋友你的」應該被選中,並在下一次單擊「外觀」應該被選中。繼續前進並繼續選擇它的應用類型。我知道這可以使用正則表達式完成,但不能構建邏輯。

任何幫助將不勝感激。非常感謝:d

回答

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" 
+0

非常感謝。它很好,但只有一個問題。段落的開頭有\ pard \ ul而不是\ ul \ i0。我如何讓正則表達式選擇這些情況而不必構建另一個?有點像「如果出現帕爾德就把它帶到」的情況。對不起在OP – xhammer

+0

@ xhammer中不清楚:你對正則表達式有多少了解?因爲,如果這對你來說是一個問題,我會建議不要使用正則表達式,除非你瞭解了更多關於它們的信息。這就是說,使用'(?:\\ ul \\ i0 | \\ pard \\ ul)'。 – Tomalak

相關問題