С QRegExp
не имеет модификатора Perl-типа /m
, вам нужно использовать группы lik e (^|\n)
и ($|\n)
. Кроме того, принимая во внимание переносами может включать в себя возврат каретки, я хотел бы использовать что-то вроде
(^|\r?\n)[a-z]*\r?\n(\r?\n|$)
См regex demo
Qt:
QString t = "hello\n\n1\n\nworld\n\n2";
t.replace(QRegExp("(^|\r?\n)[a-z]*\r?\n(\r?\n|$)"), "\\1");
ПРИМЕЧАНИЕ, что этот код будет только удалить линии которые состоят только из строчных букв ASCII и строки после них. Если вам нужно просто удалить все строки, которые не являются числовыми, используйте QRegExp("(^|\r?\n)[^\\d\n]+\r?\n(\r?\n|$)")
, где [^\d\n]
соответствует любому символу без цифр, а не символу новой строки.
В чем проблема? есть ошибка, регулярное выражение не работает? – rock321987
Невозможно определить правильное регулярное выражение. – bandito40