17   char endliteralDelimiter = 
'\0';
 
   19   while (str[iChar] == 
' ' || str[iChar] == 
'\t')
 
   25   while (iChar < str.size()) {
 
   28     bool quotedText = 
false;
 
   29     if (str[iChar] == 
'\"') {
 
   31       endliteralDelimiter = 
'\"';
 
   33       iLast = str.find_first_of(
'\"', iChar);
 
   34     } 
else if (str[iChar] == 
'{') {
 
   36       endliteralDelimiter = 
'}';
 
   38       iLast = str.find_first_of(
'}', iChar);
 
   40       iLast = str.find_first_of(delimiter, iChar + 1);
 
   42     if (iLast != std::string::npos) {
 
   44       token = str.substr(iChar, iLast - iChar);
 
   45       if (str[iLast] == endliteralDelimiter) {
 
   53         throw std::runtime_error(std::string(
"[GGSStringUtils::Tokenize] Missing closing ") + endliteralDelimiter);
 
   56         token = str.substr(iChar);
 
   59     tokens.push_back(token);
 
   61     iChar = str.find_first_not_of(delimiter, iLast);
 
   68   std::string retStr = str;
 
   69   retStr.erase(retStr.begin(), std::find_if(retStr.begin(), retStr.end(),
 
   70                                             [](
int ch) { 
return !(std::isblank(static_cast<unsigned int>(ch))); }));
 
   71   retStr.erase(std::find_if(retStr.rbegin(), retStr.rend(),
 
   72                             [](
int ch) { 
return !(std::isblank(static_cast<unsigned int>(ch))); })
 
   79   std::string trimmedStr = 
Trim(str);
 
   80   if (trimmedStr.empty() || ((!isdigit(trimmedStr[0])) && (trimmedStr[0] != 
'-') && (trimmedStr[0] != 
'+')))
 
   82   for (
unsigned int iChar = 1; iChar < trimmedStr.size(); iChar++) {
 
   83     if (!isdigit(trimmedStr[iChar])) {
 
   91   std::string trimmedStr = 
Trim(str);
 
   92   if (trimmedStr.empty() || ((!isdigit(trimmedStr[0])) && (trimmedStr[0] != 
'-') && (trimmedStr[0] != 
'+')))
 
   94   bool hasPoint = 
false;
 
   96   for (
unsigned int iChar = 1; iChar < trimmedStr.size(); iChar++) {
 
   97     if (!isdigit(trimmedStr[iChar])) {
 
   98       if (trimmedStr[iChar] == 
'.') {
 
  103       } 
else if (trimmedStr[iChar] == 
'e') {
 
  110         if (iChar >= trimmedStr.size() ||
 
  111             (!isdigit(trimmedStr[iChar]) && (trimmedStr[iChar] != 
'-') && (trimmedStr[iChar] != 
'+'))) {
 
  123   if (str.find(
'*') != std::string::npos || str.find(
'?') != std::string::npos) {
 
  131   static std::string regexStr;
 
  133   std::string::size_type n = 0;
 
  134   while ((n = regexStr.find(
".", n)) != std::string::npos) {
 
  135     regexStr.replace(n, 1, 
"\\.");
 
  139   while ((n = regexStr.find(
"*", n)) != std::string::npos) {
 
  140     regexStr.replace(n, 1, 
".*");
 
  143   std::replace(regexStr.begin(), regexStr.end(), 
'?', 
'.');
 
std::string RegexFromGlob(const std::string &str)
Build a regex starting from a glob expression. 
 
Tokens Tokenize(const std::string &str, char delimiter= ' ')
Extracts words from a string. 
 
bool IsGlobExpression(const std::string &str)
Check if the given string is a glob expression. 
 
bool IsInteger(const std::string &str)
Checks if a string is an a integer. 
 
bool IsReal(const std::string &str)
Checks if a string is a real number. 
 
std::string Trim(const std::string &str)
Trims a string.