誰でも助けてくれますか?Qtの正規表現を使って2つのタグ間の文字列を見つけよう
私はN個の部分文字列を含む文字列をタグで区切り、すべての部分文字列を取得する必要があります。 !文字列が
がSTARTfoo barENDSTARThiのようなものですENDSTARTstackoverflowrulezEND
私は開始/終了タグの間のすべての文字列を取得したいと思い、私は運で正規表現のカップルと試してみました:
は(START)(。*)(END)がALL(END)(+ W \)最初と最後のタグ
(START)の間の競合を私に与えてくれ何の結果を与えない
コードは非常に簡単です:
QString l_str "STARTfoo barENDSTARThi there!ENDSTARTstackoverflowrulezEND";
QRegExp rx("(START)(\w+)(END)");
QStringList list;
int pos = 0;
while ((pos = rx.indexIn(l_str, pos)) != -1)
{
list << rx.cap(1);
pos += rx.matchedLength();
}
qWarning() << list;
私のような結果のリストたい:
STARTfoo barEND
がSTARThi END
STARTstackoverflowrulezEND
を!
助けが必要ですか?
ありがとうございます! .*
と
'QRegex'は' START(。*?)END'のような非貪欲な要素を受け入れますか? – Galik
@Galik:いいえ、「QRegularExpression」があります。 –