2016-05-29 77 views
0

我試圖找到像第label:start:這樣的第一個字忽略空格。 標籤是在線路的第一字,然後冒號(:)正則表達式匹配第一個標籤:在線忽略空格

Label1:texttext 
    Label2: teeext 
text NONLABEL: 

我的代碼(QT C)是:

QRegExp("^\\s*([A-Za-z0-9]+:)"); 

但這也捕獲空間。

請幫忙。 弗羅林。

+0

試試這個正則表達式https://regex101.com/r/qF7bQ9/1 – Kamran

+0

@Kamran正則表達式很好..OP只是想忽略空格,如果它之前有這個詞 – rock321987

+0

謝謝你幫助我。但是這個解決方案'^(\ S [A-Za-z0-9] + :)'沒有捕獲'Label2:'。 – Junior

回答

1

您需要訪問第一個捕獲組

QRegExp grp("^\\s*([A-Za-z0-9]+:)"); 
QString captured = grp.cap(1); 
        <--------> 
       First capturing group 
+0

感謝您的快速幫助。可能有一個涉及(?=)Lookahead的解決方案?我問,因爲上述規則是我申請的許多規則之一。如果你使用'QString captured = grp.cap(1)',那麼我必須在任何地方使用它。 – Junior

+1

@Junior嘗試'^(?= \ s *(\ w + :))' – rock321987

0

這是解決方案:

QRegExp("(?:^\\s*)([a-z0-9]+):", Qt::CaseInsensitive); 

謝謝大家的幫助!

相關問題