Java到C#无法翻译代码(Matcher.group()& Matcher.replaceFirst)

时间:2015-08-13 05:56:57

标签: java c# regex matcher

我正在尝试将一段代码从java转换为c#,但我找不到如何正确地执行此操作。 我需要翻译的是: (getPattern返回Pattern,数据是具有模式变量和枚举(TokenType)的类型)

Match matcher = data.getPattern().matcher(str);//ThisLine
if (matcher.find())//ThisLine
{
     String token = matcher.group().trim();//This Line
     str = matcher.replaceFirst(""); //This Line

     if (data.getType() == TokenType.String_Literal)
     {
          return (lastToken = new Token(token.Substring(1, token.Length - 1), TokenType.String_Literal));
     }
     else
     {
          return (lastToken = new Token(token, data.getType()));
     }
}

我试图翻译它并得到了这个:

 Match matcher = data.getRegex().Match(str);
 if (matcher.Success)
 {
      String token = matcher.Value.Trim();
      str = data.getRegex().Replace(token, "", 1);

      if (data.getType() == TokenType.String_Literal)
      {
           return (lastToken = new Token(token.Substring(1, token.Length - 1), TokenType.String_Literal));
      }
      else
      {
           return (lastToken = new Token(token, data.getType()));
      }
 }

我不是100%理解代码,但部件似乎都是正确的替代品,他们似乎做同样的事情(当我读到它们时)。它们没有给出任何错误,但问题是c#代码的行为与java代码的行为不同。

编辑:我根本找不到这些代码行的c#等价物。

Matcher matcher = A_Pattern.matcher(A_String)
matcher = matcher.group().trim();
boolean A_bool = matcher.find
String Another_String = matcher.replaceFirst("");

0 个答案:

没有答案