code: private static List<Token> removeFalsePositiveVersionRanges(List<Token> tokens) {
          List<Token> result = new ArrayList<Token>();
          for (int i = 0; i < tokens.size(); i++) {
              Token token = tokens.get(i);
              if (thereIsFalsePositiveVersionRange(tokens, i)) {
                  token = new Token(TokenType.VERSION, token.value + '-' + tokens.get(i + 2).value);
                  i += 2;
              }
              result.add(token);
          }
          return result;
      }
docs: Some requirements may contain versions that look like version ranges. For example ' 0.0.1-SNASHOT ' could be
  interpreted incorrectly as a version range from 0.0.1 to SNAPSHOT. This method parses all tokens and looks for
  groups of three tokens that are respectively of type [VERSION, HYPHEN, VERSION] and validates that the token
  after the hyphen is a valid version string. If it isn't the, three tokens are merged into one (thus creating a
  single version token, in which the third token is the build information).
  
  @param tokens the tokens contained in the requirement string
  
  @return the tokens with any false positive version ranges replaced with version strings