Add QRegularExpression::CaseInsensitiveOption

This commit is contained in:
Jonas Kvinge 2021-08-13 23:33:41 +02:00
parent 1ebfa0ad7e
commit cecb9293f6
5 changed files with 8 additions and 9 deletions

View File

@ -145,9 +145,9 @@ const QString Song::kFtsUpdateSpec = Utilities::Updateify(Song::kFtsColumns).joi
const QString Song::kManuallyUnsetCover = "(unset)"; const QString Song::kManuallyUnsetCover = "(unset)";
const QString Song::kEmbeddedCover = "(embedded)"; const QString Song::kEmbeddedCover = "(embedded)";
const QRegularExpression Song::kAlbumRemoveDisc(" ?-? ((\\(|\\[)?)(Disc|CD) ?([0-9]{1,2})((\\)|\\])?)$"); const QRegularExpression Song::kAlbumRemoveDisc(" ?-? ((\\(|\\[)?)(Disc|CD) ?([0-9]{1,2})((\\)|\\])?)$", QRegularExpression::CaseInsensitiveOption);
const QRegularExpression Song::kAlbumRemoveMisc(" ?-? ((\\(|\\[)?)(Remastered|([0-9]{1,4}) *Remaster|Explicit) ?((\\)|\\])?)$"); const QRegularExpression Song::kAlbumRemoveMisc(" ?-? ((\\(|\\[)?)(Remastered|([0-9]{1,4}) *Remaster|Explicit) ?((\\)|\\])?)$", QRegularExpression::CaseInsensitiveOption);
const QRegularExpression Song::kTitleRemoveMisc(" ?-? ((\\(|\\[)?)(Remastered|Remastered Version|([0-9]{1,4}) *Remaster) ?((\\)|\\])?)$"); const QRegularExpression Song::kTitleRemoveMisc(" ?-? ((\\(|\\[)?)(Remastered|Remastered Version|([0-9]{1,4}) *Remaster) ?((\\)|\\])?)$", QRegularExpression::CaseInsensitiveOption);
const QString Song::kVariousArtists("various artists"); const QString Song::kVariousArtists("various artists");
const QStringList Song::kArticles = QStringList() << "the " << "a " << "an "; const QStringList Song::kArticles = QStringList() << "the " << "a " << "an ";

View File

@ -367,7 +367,7 @@ void OpenInFileManager(const QString &path, const QUrl &url) {
if (setting.contains("Exec")) { if (setting.contains("Exec")) {
QString cmd = setting.value("Exec").toString(); QString cmd = setting.value("Exec").toString();
if (cmd.isEmpty()) break; if (cmd.isEmpty()) break;
cmd = cmd.remove(QRegularExpression("[%][a-zA-Z]*( |$)")); cmd = cmd.remove(QRegularExpression("[%][a-zA-Z]*( |$)", QRegularExpression::CaseInsensitiveOption));
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) #if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
command_params = cmd.split(' ', Qt::SkipEmptyParts); command_params = cmd.split(' ', Qt::SkipEmptyParts);
#else #else

View File

@ -73,7 +73,7 @@ const QStringList OrganizeFormat::kKnownTags = QStringList() << "title"
const QRegularExpression OrganizeFormat::kInvalidDirCharacters("[/\\\\]"); const QRegularExpression OrganizeFormat::kInvalidDirCharacters("[/\\\\]");
const QRegularExpression OrganizeFormat::kProblematicCharacters("[:?*\"<>|]"); const QRegularExpression OrganizeFormat::kProblematicCharacters("[:?*\"<>|]");
// From http://en.wikipedia.org/wiki/8.3_filename#Directory_table // From http://en.wikipedia.org/wiki/8.3_filename#Directory_table
const QRegularExpression OrganizeFormat::kInvalidFatCharacters("[^a-zA-Z0-9!#\\$%&'()\\-@\\^_`{}~/. ]"); const QRegularExpression OrganizeFormat::kInvalidFatCharacters("[^a-zA-Z0-9!#\\$%&'()\\-@\\^_`{}~/. ]", QRegularExpression::CaseInsensitiveOption);
const char OrganizeFormat::kInvalidPrefixCharacters[] = "."; const char OrganizeFormat::kInvalidPrefixCharacters[] = ".";
const int OrganizeFormat::kInvalidPrefixCharactersCount = arraysize(OrganizeFormat::kInvalidPrefixCharacters) - 1; const int OrganizeFormat::kInvalidPrefixCharactersCount = arraysize(OrganizeFormat::kInvalidPrefixCharacters) - 1;

View File

@ -49,10 +49,9 @@ SongList ASXParser::Load(QIODevice *device, const QString &playlist_path, const
QByteArray data = device->readAll(); QByteArray data = device->readAll();
// Some playlists have unescaped & characters in URLs :( // Some playlists have unescaped & characters in URLs :(
QRegularExpression ex("(href\\s*=\\s*\")([^\"]+)\""); QRegularExpression ex("(href\\s*=\\s*\")([^\"]+)\"", QRegularExpression::CaseInsensitiveOption);
QRegularExpressionMatch re_match;
int index = 0; int index = 0;
for (re_match = ex.match(data, index) ; re_match.hasMatch() ; re_match = ex.match(data, index)) { for (QRegularExpressionMatch re_match = ex.match(data, index) ; re_match.hasMatch() ; re_match = ex.match(data, index)) {
index = re_match.capturedStart(); index = re_match.capturedStart();
QString url = re_match.captured(2); QString url = re_match.captured(2);
url.replace(QRegularExpression("&(?!amp;|quot;|apos;|lt;|gt;)"), "&amp;"); url.replace(QRegularExpression("&(?!amp;|quot;|apos;|lt;|gt;)"), "&amp;");

View File

@ -44,7 +44,7 @@ void ParserBase::LoadSong(const QString &filename_or_url, const qint64 beginning
QString filename = filename_or_url; QString filename = filename_or_url;
if (filename_or_url.contains(QRegularExpression("^[a-z]{2,}:"))) { if (filename_or_url.contains(QRegularExpression("^[a-z]{2,}:", QRegularExpression::CaseInsensitiveOption))) {
QUrl url(filename_or_url); QUrl url(filename_or_url);
song->set_source(Song::SourceFromURL(url)); song->set_source(Song::SourceFromURL(url));
if (song->source() == Song::Source_LocalFile) { if (song->source() == Song::Source_LocalFile) {