Я написал исходный код, как:Как указать метод QString :: indexOf не быть чувствительным к количеству пробелов между двумя словами?
int main(int argc, char *argv[]) {
QFile File (directory + "/File");
if(File.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream Stream (&File);
QString FileText;
do
{
FileText = Stream.readLine();
QString s = "start";
QString e = "end here";
int start = FileText.indexOf(s, 0, Qt::CaseInsensitive);
int end = FileText.indexOf(e, Qt::CaseInsensitive);
if(start != -1){ // we found it
QString y = FileText.mid(start + s.length(), (end - (start + s.length())));
qDebug() << y << (start + s.length()) << (end - (start + s.length()));
}
}
Моя проблема здесь в том, что ИНТ конец = FileText.indexOf (е, Qt :: CaseInsensitive); с QString e = "end here";
находится только в том случае, когда между словом «конец» и «здесь» существует ровно три пробела. Это проблематично, потому что в тексте, который я читал, промежутки между этими двумя словами будут время от времени отличаться. Кроме того, мне нужно написать оба слова «конец» и «здесь». Я попытался свести проблему к основанию и надеюсь, что у кого-то есть идея/решение.
вы просто ищете вхождение в «заканчивается» и «начать» в вашем потоке? –
Я ищу их, и после этого извлеките что-то между ними методом «.mid()». Конечно, мне нужно искать еще много слов в моем потоке/тексте, потому что мне нужно извлечь еще много строк. – Streight