code: public static Map<String, String> convertToMap(final String _text)
      {
          final Map<String, String> properties = new HashMap<>();
          if (StringUtils.isNotEmpty(_text)) {
              // separated all key / value pairs
              final Pattern pattern = Pattern.compile("(([^\\\\,])|(\\\\,)|(\\\\))*");
              final Matcher matcher = pattern.matcher(_text);
  
              while (matcher.find()) {
                  final String group = matcher.group().trim();
                  if (group.length() > 0) {
                      // separated key from value
                      final int index = group.indexOf('=');
                      final String key = index > 0
                                    ? group.substring(0, index).trim()
                                    : group.trim();
                      final String value = index > 0
                                    ? group.substring(index + 1).trim()
                                    : "";
                      properties.put(key, value);
                  }
              }
          }
          return properties;
      }
docs: <p>
  Separates all key / value pairs of given text string.
  </p>
  <p>
  <b>Evaluation algorithm:</b><br/>
  Separates the text by all found commas (only if in front of the comma is no back slash). This are the key / value
  pairs. A key / value pair is separated by the first equal ('=') sign.
  </p>
  
  @param _text text string to convert to a key / value map
  @return Map of strings with all found key / value pairs