类java.util.regex.MatchResult源码实例Demo

下面列出了怎么用java.util.regex.MatchResult的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: RestServices   文件: StringUtils.java
public static String substituteTemplate(final IContext context, String template,
		final IMendixObject substitute, final boolean HTMLEncode, final String datetimeformat) {
	return regexReplaceAll(template, "\\{(@)?([\\w./]+)\\}", (MatchResult match) -> {
		String value;
		String path = match.group(2);
		if (match.group(1) != null)
			value = String.valueOf(Core.getConfiguration().getConstantValue(path));
		else {
			try
			{
				value = ORM.getValueOfPath(context, substitute, path,	datetimeformat);
			}
			catch (Exception e)
			{
				throw new RuntimeException(e);
			}
		}
		return HTMLEncode ? HTMLEncode(value) : value;
	});
}
 
源代码2 项目: dragonwell8_jdk   文件: TzdbZoneRulesCompiler.java
private int parseYear(Scanner s, int defaultYear) {
    if (s.hasNext(YEAR)) {
        s.next(YEAR);
        MatchResult mr = s.match();
        if (mr.group(1) != null) {
            return 1900;  // systemv has min
        } else if (mr.group(2) != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group(3) != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group(4));
        /*
        if (mr.group("min") != null) {
            //return YEAR_MIN_VALUE;
            return 1900;  // systemv has min
        } else if (mr.group("max") != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group("only") != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group("year"));
        */
    }
    throw new IllegalArgumentException("Unknown year: " + s.next());
}
 
源代码3 项目: jdk8u_jdk   文件: TzdbZoneRulesCompiler.java
private int parseYear(Scanner s, int defaultYear) {
    if (s.hasNext(YEAR)) {
        s.next(YEAR);
        MatchResult mr = s.match();
        if (mr.group(1) != null) {
            return 1900;  // systemv has min
        } else if (mr.group(2) != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group(3) != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group(4));
        /*
        if (mr.group("min") != null) {
            //return YEAR_MIN_VALUE;
            return 1900;  // systemv has min
        } else if (mr.group("max") != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group("only") != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group("year"));
        */
    }
    throw new IllegalArgumentException("Unknown year: " + s.next());
}
 
源代码4 项目: mr4c   文件: CustomFormat.java
public Map<String,String> parse(String str) {
	if ( !matches(str) ) {
		throw new IllegalArgumentException(String.format("[%s] doesn't match pattern [%s]", str, m_pattern));
	}
	Scanner scanner = new Scanner(str);
	scanner.findWithinHorizon(m_regex, 0);
	MatchResult result = scanner.match();
	Map<String,String> vals = new HashMap<String,String>();
	if ( result.groupCount()!=m_nameList.size() ) {
		// this shouldn't be able to happen
		throw new IllegalStateException(String.format("[%s] doesn't match pattern [%s]; found %d matches, expected %d", str, m_pattern, result.groupCount(), m_nameList.size()));
	}
	for (int i=1; i<=result.groupCount(); i++) {
		String name = m_nameList.get(i-1);
		String val = result.group(i);
		if ( vals.containsKey(name) ) {
			if ( !vals.get(name).equals(val) ) {
				throw new IllegalArgumentException(String.format("[%s]doesnt match pattern [%s]; variable [%s] has values [%s] and [%s]", str, m_pattern, name, val, vals.get(name)));
			}
		}
		vals.put(name,result.group(i));
	}
	return vals;
}
 
源代码5 项目: cloud-odata-java   文件: BatchResponseParser.java
private Map<String, String> parseResponseHeaders(final Scanner scanner) throws BatchException {
  Map<String, String> headers = new HashMap<String, String>();
  while (scanner.hasNext() && !scanner.hasNext(REG_EX_BLANK_LINE)) {
    if (scanner.hasNext(REG_EX_HEADER)) {
      scanner.next(REG_EX_HEADER);
      currentLineNumber++;
      MatchResult result = scanner.match();
      if (result.groupCount() == 2) {
        String headerName = result.group(1).trim();
        String headerValue = result.group(2).trim();
        if (BatchHelper.HTTP_CONTENT_ID.equalsIgnoreCase(headerName)) {
          if (currentContentId == null) {
            currentContentId = headerValue;
          }
        } else {
          headers.put(headerName, headerValue);
        }
      }
    } else {
      currentLineNumber++;
      throw new BatchException(BatchException.INVALID_HEADER.addContent(scanner.next()).addContent(currentLineNumber));
    }
  }
  return headers;
}
 
源代码6 项目: jdk8u60   文件: TzdbZoneRulesCompiler.java
private int parseYear(Scanner s, int defaultYear) {
    if (s.hasNext(YEAR)) {
        s.next(YEAR);
        MatchResult mr = s.match();
        if (mr.group(1) != null) {
            return 1900;  // systemv has min
        } else if (mr.group(2) != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group(3) != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group(4));
        /*
        if (mr.group("min") != null) {
            //return YEAR_MIN_VALUE;
            return 1900;  // systemv has min
        } else if (mr.group("max") != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group("only") != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group("year"));
        */
    }
    throw new IllegalArgumentException("Unknown year: " + s.next());
}
 
源代码7 项目: nextreports-designer   文件: FindReplaceDialog.java
/**
 * Search from same startIndex as the previous search. 
 * Checks if the match is different from the last (either 
 * extended/reduced) at the same position. Returns true
 * if the current match result represents a different match 
 * than the last, false if no match or the same.
 */
private boolean foundExtendedMatch(Pattern pattern, int start) {
    if (pattern.pattern().equals(lastRegex)) {
        return false;
    }
    
    int length = target.getDocument().getLength() - start;
    try {
        target.getDocument().getText(start, length, segment);
    } catch (BadLocationException e) {
    	e.printStackTrace();
    }
    
    Matcher matcher = pattern.matcher(segment.toString());
    MatchResult matchResult = getMatchResult(matcher, true);
    if (matchResult != null) {
        if ((matchResult.start() == 0) &&  (!lastMatchResult.group().equals(matchResult.group()))) {
            updateStateAfterFound(matchResult, start);
            return true;
        } 
    }
    
    return false;
}
 
源代码8 项目: tilt-game-android   文件: SystemUtils.java
private static MatchResult matchSystemFile(final String pSystemFile, final String pPattern, final int pHorizon) throws SystemUtilsException {
	InputStream in = null;
	try {
		final Process process = new ProcessBuilder(new String[] {"/system/bin/cat", pSystemFile}).start();

		in = process.getInputStream();
		final Scanner scanner = new Scanner(in);

		final boolean matchFound = scanner.findWithinHorizon(pPattern, pHorizon) != null;
		if (matchFound) {
			return scanner.match();
		} else {
			throw new SystemUtilsException();
		}
	} catch (final IOException e) {
		throw new SystemUtilsException(e);
	} finally {
		StreamUtils.close(in);
	}
}
 
源代码9 项目: hottub   文件: TzdbZoneRulesCompiler.java
private int parseYear(Scanner s, int defaultYear) {
    if (s.hasNext(YEAR)) {
        s.next(YEAR);
        MatchResult mr = s.match();
        if (mr.group(1) != null) {
            return 1900;  // systemv has min
        } else if (mr.group(2) != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group(3) != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group(4));
        /*
        if (mr.group("min") != null) {
            //return YEAR_MIN_VALUE;
            return 1900;  // systemv has min
        } else if (mr.group("max") != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group("only") != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group("year"));
        */
    }
    throw new IllegalArgumentException("Unknown year: " + s.next());
}
 
源代码10 项目: RestServices   文件: UriTemplate.java
public String createURI(final Map<String, String> values) {
	Preconditions.checkNotNull(values);
	
	Preconditions.checkArgument(values.keySet().equals(new HashSet<String>(paramNames)), "Incomplete set of values for path " + pathString + ", expected the following keys: " + paramNames + ", found: " + values.keySet());
	
	return regexReplaceAll(pathString, PARAMNAME_REGEX,  new Function<MatchResult, String>() {

		@Override
		public String apply(MatchResult match) {
			String paramName = match.group(1);
			String value = values.get(paramName);
			if (value == null || value.isEmpty()) {
				throw new IllegalArgumentException("No value was defined for path element '{" + paramName + "}'. The value should be non-empty.");
			}
			return Utils.urlEncode(values.get(paramName));
		}
	});
}
 
源代码11 项目: liiklus   文件: GroupId.java
public static GroupId ofString(String str) {
    Matcher matcher = VERSION_PATTERN.matcher(str);

    if (matcher.matches()) {
        MatchResult result = matcher.toMatchResult();

        return GroupId.of(
                result.group(1),
                Optional.ofNullable(result.group(2)).map(Integer::parseInt)
        );
    } else {
        return GroupId.of(
                str,
                Optional.empty()
        );
    }
}
 
源代码12 项目: nexus-public   文件: RegexMatcher.java
@Override
public boolean matches(final Context context) {
  checkNotNull(context);

  String path = context.getRequest().getPath();
  log.debug("Matching: {}~={}", path, pattern);
  final java.util.regex.Matcher m = pattern.matcher(path);

  if (m.matches()) {
    // expose match result in context
    context.getAttributes().set(State.class, new State()
    {
      @Override
      public MatchResult getMatchResult() {
        return m;
      }
    });
    return true;
  }

  // no match
  return false;
}
 
源代码13 项目: sinavi-jfw   文件: Strings.java
/**
 * 引数の文字列をラクダ記法(単語区切りが大文字)とみなして、
 * それを全て大文字のスネーク記法(単語区切りがアンダースコア)に変換します。
 * 例えば、ラクダ記法の<code>tigerSupportApi</code>は、
 * スネーク記法の<code>TIGER_SUPPORT_API</code>に変換されます。
 * @param camel ラクダ記法の文字列
 * @return スネーク記法(全て大文字)
 */
public static String toSnake(String camel) {
    if (Strings.isBlank(camel))
        return "";

    ArrayList<String> words = new ArrayList<String>();

    Matcher matcher = SNAKE_CASE_WORD.matcher(camel);
    while(matcher.find()) {
        MatchResult result = matcher.toMatchResult();
        String word = camel.substring(result.start(), result.end());

        words.add(word.toUpperCase());
    }
    return Strings.joinBy("_", words);
}
 
源代码14 项目: openjdk-jdk8u   文件: TzdbZoneRulesCompiler.java
private int parseYear(Scanner s, int defaultYear) {
    if (s.hasNext(YEAR)) {
        s.next(YEAR);
        MatchResult mr = s.match();
        if (mr.group(1) != null) {
            return 1900;  // systemv has min
        } else if (mr.group(2) != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group(3) != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group(4));
        /*
        if (mr.group("min") != null) {
            //return YEAR_MIN_VALUE;
            return 1900;  // systemv has min
        } else if (mr.group("max") != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group("only") != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group("year"));
        */
    }
    throw new IllegalArgumentException("Unknown year: " + s.next());
}
 
private int parseYear(Scanner s, int defaultYear) {
    if (s.hasNext(YEAR)) {
        s.next(YEAR);
        MatchResult mr = s.match();
        if (mr.group(1) != null) {
            return 1900;  // systemv has min
        } else if (mr.group(2) != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group(3) != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group(4));
        /*
        if (mr.group("min") != null) {
            //return YEAR_MIN_VALUE;
            return 1900;  // systemv has min
        } else if (mr.group("max") != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group("only") != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group("year"));
        */
    }
    throw new IllegalArgumentException("Unknown year: " + s.next());
}
 
源代码16 项目: Pydev   文件: PercentToBraceConverter.java
/**
 * Build a group dictionary from the matched groups. <br>
 * Guaranteed to contain 4 keys:<br>
 * <ol>
 *   <li><tt>FormatString</tt>: the complete format string part</li>
 *   <li><tt>StringCharacter</tt>: the literal delimiter used (e.g. <tt>",',''',"""</tt></li>
 *   <li><tt>InterpolantToken</tt>: the percent sign, used to signal string interpolation</li>
 *   <li><tt>InterpolationValues</tt>: the values for filling in the specifier tokens in the format string.</li>
 * </ol>
 * @param matchResult
 * @return the K, V mapped groups.
 * @see {@link #FMTSTR_PATTERN}
 */
private static Map<String, String> extractFormatStringGroups(final MatchResult matchResult) {

    // in a strict sense the assertion here is superfluous since the enclosing 
    // context in the caller already does a check if the group count is 4 and 
    // the execution branch in which this method is called will not be run if
    // it isn't 4.
    Assert.isLegal(4 == matchResult.groupCount(),
            "E: Match result from FMTSTR_PATTERN is malformed. Group count must be 4.");

    final Map<String, String> result = new HashMap<String, String>(4);

    final String fmtString = matchResult.group(1);
    final String strChar = matchResult.group(2);
    final String interpToken = matchResult.group(3);
    final String interpValues = matchResult.group(4);

    result.put("FormatString", fmtString);
    result.put("StringCharacter", strChar);
    result.put("InterpolantToken", interpToken);
    result.put("InterpolationValues", interpValues);

    return result;
}
 
源代码17 项目: styx   文件: RewriteConfig.java
private String substitute(MatchResult matcher) {
    StringBuilder rewrittenUrl = new StringBuilder();

    // There may not be enough literals to fully interleave with placeholders.
    // This is just how String.split(REGEX) works.
    // Any remaining literals are assumed to be empty strings.
    for (int i = 0; i < placeholderNumbers.size(); i++) {
        if (literals.size() > i) {
            rewrittenUrl.append(literals.get(i));
        }
        rewrittenUrl.append(matcher.group(placeholderNumbers.get(i)));
    }

    if (literals.size() > placeholderNumbers.size()) {
        rewrittenUrl.append(literals.get(literals.size() - 1));
    }

    return rewrittenUrl.toString();
}
 
源代码18 项目: openjdk-jdk9   文件: DefaultFormat.java
protected ThreadStack parseThreadInfo(String threadInfo) {
    Scanner s = new Scanner(threadInfo);
    ThreadStack result = new ThreadStack();

    // parsing thread info
    s.findInLine(threadInfoPattern());
    MatchResult res = s.match();

    result.setThreadName(res.group(1));

    result.setType(res.group(3));

    result.setPriority(res.group(4));
    result.setTid(res.group(7));
    result.setNid(res.group(8));
    result.setStatus(res.group(9));

    s.close();
    return result;
}
 
源代码19 项目: openjdk-jdk9   文件: DefaultFormat.java
protected MethodInfo parseMethodInfo(String line) {

        MethodInfo result = new MethodInfo();
        Scanner s = new Scanner(line);

        s.findInLine(methodInfoPattern());
        MatchResult rexp = s.match();
        if (rexp.group(4) != null && rexp.group(4).length() > 0) {
            // line "  at tmtools.jstack.share.utils.Utils.sleep(Utils.java:29)"
            result.setName(rexp.group(1));
            result.setCompilationUnit(rexp.group(2));
            result.setLine(rexp.group(4));

        } else {
            // line "  at java.lang.Thread.sleep(Native Method)"
            result.setName(rexp.group(1));
        }

        s.close();
        return result;
    }
 
源代码20 项目: thym   文件: PluginMessagesCLIResult.java
private void parseMessage(){
	
	Scanner scanner = new Scanner(getMessage());
	
	while(scanner.hasNextLine()){
		//check of --variable APP_ID=value is needed
		if( scanner.findInLine("(?:\\s\\-\\-variable\\s(\\w*)=value)") != null ){
			MatchResult mr = scanner.match();
			StringBuilder missingVars = new StringBuilder();
			for(int i = 0; i<mr.groupCount();i++){
				if(i>0){
					missingVars.append(",");
				}
				missingVars.append(mr.group());
			}
			pluginStatus = new HybridMobileStatus(IStatus.ERROR, HybridCore.PLUGIN_ID, CordovaCLIErrors.ERROR_MISSING_PLUGIN_VARIABLE,
					NLS.bind("This plugin requires {0} to be defined",missingVars), null);
		
		}
		scanner.nextLine();
	}
	scanner.close();
	
}
 
源代码21 项目: jdk8u-jdk   文件: TzdbZoneRulesCompiler.java
private int parseYear(Scanner s, int defaultYear) {
    if (s.hasNext(YEAR)) {
        s.next(YEAR);
        MatchResult mr = s.match();
        if (mr.group(1) != null) {
            return 1900;  // systemv has min
        } else if (mr.group(2) != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group(3) != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group(4));
        /*
        if (mr.group("min") != null) {
            //return YEAR_MIN_VALUE;
            return 1900;  // systemv has min
        } else if (mr.group("max") != null) {
            return YEAR_MAX_VALUE;
        } else if (mr.group("only") != null) {
            return defaultYear;
        }
        return Integer.parseInt(mr.group("year"));
        */
    }
    throw new IllegalArgumentException("Unknown year: " + s.next());
}
 
源代码22 项目: es6draft   文件: RegExpPrototype.java
/**
 * 21.2.5.2.1 Runtime Semantics: RegExpExec ( R, S ) (1)
 * 
 * @param cx
 *            the execution context
 * @param r
 *            the regular expression object
 * @param s
 *            the string
 * @param storeResult
 *            {@code true} if the match result is stored
 * @return the match result object or null
 */
private static MatchResult matchResultOrNull(ExecutionContext cx, ScriptObject r, String s, boolean storeResult) {
    /* steps 1-2 (not applicable) */
    /* step 3 */
    Object exec = Get(cx, r, "exec");
    /* step 4 */
    // Don't take the slow path for built-in RegExp.prototype.exec
    if (IsCallable(exec) && !isBuiltinExec(cx.getRealm(), exec)) {
        ScriptObject o = RegExpUserExec(cx, (Callable) exec, r, s);
        return o != null ? new ScriptObjectMatchResult(cx, o) : null;
    }
    /* step 5 */
    RegExpObject rx = thisRegExpObject(cx, r, "RegExp.prototype.exec");
    /* step 6 */
    return matchResultOrNull(cx, rx, s, storeResult);
}
 
private int getTruePositiveTokenCount( Mutant mutant){
    int count = 0;
    Pattern mask = Pattern.compile("X+");
    List<MatchResult> results = new ArrayList<>();
    Matcher matcher = mask.matcher(mutant.getDeidentifiedString());
    while (matcher.find()){
        results.add(matcher.toMatchResult());
    }
    for(MatchResult result: results) {
        StringTokenizer tokenizer = new StringTokenizer(mutant.getFinalText().substring(result.start(),result.end()));
        ArrayList<String> arHits = new ArrayList<>();
        while (tokenizer.hasMoreTokens()){
            arHits.add(tokenizer.nextToken());
        }
        count = getHitCount(mutant, count, arHits);
    }
    return count;
}
 
源代码24 项目: CostFed   文件: QueryManager.java
/**
 * Find all prefixes declared in the query
 * @param queryString
 * @return
 */
protected static Set<String> findQueryPrefixes(String queryString) {
	
	Set<String> res = new HashSet<String>();
	
	Scanner sc = new Scanner(queryString);
	while (true) {
		while (sc.findInLine(prefixPattern)!=null) {
			MatchResult m = sc.match();
			res.add(m.group(1));
		}
		if (!sc.hasNextLine())
			break;
		sc.nextLine();
	}
	sc.close();
	return res;
}
 
源代码25 项目: FreeBuilder   文件: TypeMirrors.java
/** Replaces the given match with the given replacement string. */
void replace(MatchResult match, String replacement) {
  Preconditions.checkArgument(
      match.group().equals(value.substring(match.start(), match.end())),
      "MatchResult does not match the current value of this string");
  value = value.substring(0, match.start()) + replacement + value.substring(match.end());
}
 
源代码26 项目: java-repl   文件: Evaluator.java
private Either<Throwable, Expression> createAssignmentWithType(String expression) {
    try {
        MatchResult match = Patterns.assignmentWithTypeNamePattern.match(expression);
        java.lang.reflect.Method declaredMethod = detectMethod(match.group(1) + " " + randomIdentifier("method") + "(){}");
        return right((Expression) new AssignmentWithType(expression, declaredMethod.getGenericReturnType(), match.group(2), match.group(3)));
    } catch (Exception e) {
        return left(Utils.unwrapException(e));
    }
}
 
源代码27 项目: nextreports-designer   文件: FindReplaceDialog.java
private MatchResult getMatchResult(Matcher matcher, boolean onlyFirst) {
    MatchResult matchResult = null;
    while (matcher.find()) {
        matchResult = matcher.toMatchResult();
        if (onlyFirst) {
        	break;
        }
    }
    
    return matchResult;
}
 
源代码28 项目: common-utils   文件: MatchResultSubstitution.java
@Override
protected String group(int index, int groupNumber) {
    MatchResult result = getMatch(index);

    if (0 <= groupNumber && groupNumber <= result.groupCount()) {
        return result.group(groupNumber);
    }

    return null;
}
 
源代码29 项目: riposte   文件: Parser.java
public MatchResult parse(final ParserInput parserInput) throws ParserFailure {
    final Matcher matcher = pattern.matcher(
        parserInput.getText().subSequence(parserInput.getOffset(),
                                          parserInput.getText().length())
    );

    if (matcher.lookingAt()) {
        parserInput.setOffset(parserInput.getOffset() + matcher.end());
        return matcher.toMatchResult();
    }
    else {
        throw new ParserFailure("Regular Expression parser with pattern '" + pattern.pattern()
                                + "' did not match the input text ( using matcher.lookingAt() )", parserInput);
    }
}
 
源代码30 项目: tilt-game-android   文件: SystemUtils.java
public static float getCPUBogoMips() throws SystemUtilsException {
	final MatchResult matchResult = SystemUtils.matchSystemFile("/proc/cpuinfo", SystemUtils.BOGOMIPS_PATTERN, 1000);

	try {
		if (matchResult.groupCount() > 0) {
			return Float.parseFloat(matchResult.group(1));
		} else {
			throw new SystemUtilsException();
		}
	} catch (final NumberFormatException e) {
		throw new SystemUtilsException(e);
	}
}
 
 类所在包
 同包方法