OSDN Git Service

Added helper function for parsing regular expressions.
authorLoRd_MuldeR <mulder2@gmx.de>
Wed, 24 Dec 2014 23:49:29 +0000 (00:49 +0100)
committerLoRd_MuldeR <mulder2@gmx.de>
Wed, 24 Dec 2014 23:49:29 +0000 (00:49 +0100)
include/MUtils/Global.h
src/Global.cpp

index 286efa4..0d6822d 100644 (file)
@@ -95,6 +95,11 @@ namespace MUtils
        MUTILS_API QString clean_file_name(const QString &name);
        MUTILS_API QString clean_file_path(const QString &path);
 
+       //Regular expressions
+       MUTILS_API bool regexp_parse_uint32(const QRegExp &regexp, quint32 &value);
+       MUTILS_API bool regexp_parse_uint32(const QRegExp &regexp, quint32 *values, const size_t &count);
+
+       //Internationalization
        MUTILS_API QStringList available_codepages(const bool &noAliases = true);
 
        //Internal
index 6c4be19..3741d87 100644 (file)
@@ -395,6 +395,37 @@ QString MUtils::clean_file_path(const QString &path)
 }
 
 ///////////////////////////////////////////////////////////////////////////////
+// REGULAR EXPESSION HELPER
+///////////////////////////////////////////////////////////////////////////////
+
+bool MUtils::regexp_parse_uint32(const QRegExp &regexp, quint32 &value)
+{
+       return regexp_parse_uint32(regexp, &value, 1);
+}
+
+bool MUtils::regexp_parse_uint32(const QRegExp &regexp, quint32 *values, const size_t &count)
+{
+       const QStringList caps = regexp.capturedTexts();
+       
+       if(caps.isEmpty() || (quint32(caps.count()) <= count))
+       {
+               return false;
+       }
+
+       for(size_t i = 0; i < count; i++)
+       {
+               bool ok = false;
+               values[i] = caps[i+1].toUInt(&ok);
+               if(!ok)
+               {
+                       return false;
+               }
+       }
+
+       return true;
+}
+
+///////////////////////////////////////////////////////////////////////////////
 // AVAILABLE CODEPAGES
 ///////////////////////////////////////////////////////////////////////////////