2012-01-26 3 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

덕분 일 것이다. 그것은 위대한 단 하나의 문제를 해결합니다. 단락의 시작 부분에는 \ ul \ i0 대신 \ pard \ ul이 있습니다. 어떻게 정규 표현식을 만들지 않고 이런 상황을 선택하게 할 수 있습니까? 종류가 "pard가 나타나는 경우에 그것을"가지고 가기 같이 상황. 미안 OP에서 명확하지 않다 – xhammer

+0

@ xhammer : 당신은 정규식에 대해 얼마나 알고 있습니까? 왜냐하면, 이것이 당신에게 문제가되기 때문에, 당신이 그들에 대해 좀 더 배울 때까지 나는 정규 표현식에 반대 할 것을 권고합니다. 즉,'(? : \\ ul \\ i0 | \\ pard \\ ul)'을 사용하십시오. – Tomalak

관련 문제