Russian Qt Forum

Qt => Общие вопросы => Тема начата: xintrea от Январь 11, 2016, 00:43



Название: Особенности маскирования прямых слешей в QRegExp
Отправлено: xintrea от Январь 11, 2016, 00:43
У меня есть строка вида:
Код:
href="mytetra://note/14433417722c6dzjr63c";

В строке меняется только последняя часть - это уникальный идентификатор.

И не работает следующая функция:
Код:
bool ReferenceFormatter::isHrefInternal(QString href)
{
  if(href.contains(QRegExp("^mytetra://note/\\w$")))
    return true;
  else
    return false;
}

То есть, с тестовой строкой возвращает false, хотя функция должна возвращать true.

Я пробовал варианты:

Код:
if(href.contains(QRegExp("^mytetra:\/\/note\/\\w$")))

Код:
if(href.contains(QRegExp("^mytetra:\\/\\/note\\/\\w$")))

Код:
if(href.contains(QRegExp("^mytetra\:\/\/note\/\\w$")))

Код:
if(href.contains(QRegExp("^mytetra\\:\\/\\/note\\/\\w$")))


Но ни один на тестовой строке не срабатывает правильно.

Каким должно быть регулярное выражение, проверяющее данную строку?


Название: Re: Особенности маскирования прямых слешей в QRegExp
Отправлено: gil9red от Январь 11, 2016, 01:56
^mytetra://note/\\w+$


Название: Re: Особенности маскирования прямых слешей в QRegExp
Отправлено: __Heaven__ от Январь 11, 2016, 09:31
А вам не подойдёт такой вариант?
Код
C++ (Qt)
bool ReferenceFormatter::isHrefInternal(QString href){
 return href.startsWith("mytetra://note/");
}