Пример #1
0
        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());
        }
Пример #2
0
		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 ();
		}