internal static string Reformat(Regex regex, string replacement) { replacement = JavaUtils.ReplaceAll(replacement, BACKSLASH_PATTERN, JAVA_BACKSLASH); replacement = JavaUtils.ReplaceAll(replacement, DOUBLE_DOLLAR_PATTERN, JAVA_DOLLAR); Pattern p = Pattern.compile(SINGLE_DOLLAR_PATTERN); Matcher m = p.matcher((CharSequence)(object)replacement); StringBuffer sb = new StringBuffer(); while (m.find()) { if (m.start(1) >= 0) { int groupNumber = regex.GroupNumberFromName(m.group(1)); if (groupNumber >= 0) { m.appendReplacement(sb, @"\$" + regex.GetJavaNumberByNetNumber(groupNumber)); continue; } if (int.TryParse(m.group(1), out groupNumber) && groupNumber <= regex.GroupCount) { m.appendReplacement(sb, @"\$" + regex.GetJavaNumberByNetNumber(groupNumber)); continue; } m.appendReplacement(sb, JAVA_DOLLAR + "{" + m.group(1) + "}"); continue; } if (m.start(2) >= 0) { int netGroupNumber = int.Parse(m.group(2)); if (netGroupNumber > regex.GroupCount) { m.appendReplacement(sb, JAVA_DOLLAR + netGroupNumber); continue; } m.appendReplacement(sb, @"\$" + regex.GetJavaNumberByNetNumber(netGroupNumber)); continue; } m.appendReplacement(sb, JAVA_DOLLAR); } m.appendTail(sb); return(sb.ToString()); }
internal static string Reformat (Regex regex, string replacement) { replacement = JavaUtils.ReplaceAll (replacement, BACKSLASH_PATTERN, JAVA_BACKSLASH); replacement = JavaUtils.ReplaceAll (replacement, DOUBLE_DOLLAR_PATTERN, JAVA_DOLLAR); Pattern p = Pattern.compile (SINGLE_DOLLAR_PATTERN); Matcher m = p.matcher ((CharSequence) (object) replacement); StringBuffer sb = new StringBuffer (); while (m.find ()) { if (m.start (1) >= 0) { int groupNumber = regex.GroupNumberFromName (m.group (1)); if (groupNumber >= 0) { m.appendReplacement (sb, @"\$" + regex.GetJavaNumberByNetNumber (groupNumber)); continue; } if (int.TryParse (m.group (1), out groupNumber) && groupNumber <= regex.GroupCount) { m.appendReplacement (sb, @"\$" + regex.GetJavaNumberByNetNumber (groupNumber)); continue; } m.appendReplacement (sb, JAVA_DOLLAR + "{" + m.group (1) + "}"); continue; } if (m.start (2) >= 0) { int netGroupNumber = int.Parse (m.group (2)); if (netGroupNumber > regex.GroupCount) { m.appendReplacement (sb, JAVA_DOLLAR + netGroupNumber); continue; } m.appendReplacement (sb, @"\$" + regex.GetJavaNumberByNetNumber (netGroupNumber)); continue; } m.appendReplacement (sb, JAVA_DOLLAR); } m.appendTail (sb); return sb.ToString (); }