协助我将Visual Basic正则表达式翻译成C#?

时间:2012-02-26 22:00:39

标签: c# regex

我支付了以下代码,但我的编码器在Visual Basic中编码。我尝试使用在线转换器,但没有一个转换正确。

你们介意帮助我将以下代码转换为C#吗?感谢:

Dim r As New System.Text.RegularExpressions.Regex("<input name=""authenticity_token"" type=""hidden"" value="".*"" />")
        Dim matches As MatchCollection = r.Matches(theusercp)
        For Each itemcode As Match In matches
            autcode = UrlEncode((itemcode.Value.Split("""").GetValue(5)))
        Next

4 个答案:

答案 0 :(得分:0)

这适合你吗?

System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex("<input name=\"authenticity_token\" type=\"hidden\" value=\".*\" />");
MatchCollection matches = r.Matches(theusercp);
foreach (Match itemcode in matches) {
    autcode = UrlEncode((itemcode.Value.Split('\"').GetValue(5)));
}

也许你还必须写var autcode和/或Server.UrlEncode

答案 1 :(得分:0)

应该是这样的(必须承认我没有尝试编译或测试)

var r = New Regex("<input name=\"authenticity_token\" type=\"hidden\" value=\".*\" />");
var matches = r.Matches(theusercp);
foreach (var itemcode in matches){
  var autcode = Server.UrlEncode(itemcode.Value.Split("\"")[5]);
}

答案 2 :(得分:0)

关于这段代码,本质上很少有“VB”;它只使用.NET RegEx类。我不确定你在谈论什么在线翻译,但这几乎直接翻译成C#:

var r = new Regex("<input name=\"authenticity_token\" type=\"hidden\" value=\".*\" />");
var matches = r.Matches(theusercp);
foreach (var itemcode in matches)
{
  autcode = UrlEncode(itemcode.Value.Split("\"").GetValue(5));
}

我希望这不是所有的代码,因为它实际上并没有任何与你的正则表达式匹配的标记的东西(并且很难使用正则表达式匹配来启动。 )

var r = new Regex("<input name=\"authenticity_token\" type=\"hidden\" value=\"(.*)\" />");
foreach (var match in r.Matches(theusercp))
{
  autcode = UrlEncode(match.Group[1].Value);
}

答案 3 :(得分:0)

你有两种方法来逃避c#中的双引号。通过使用反斜杠来转义它\"或使用逐字字符串并使用两个双引号""

string s = "double quote (\")";

string s = @"double quote ("")";

@引入的逐字字符串不会将反斜杠解释为转义字符,并且可以跨越多行

string s = @"Hello
 World";

您的代码在C#

中看起来像这样
var r = new Regex(@"<input name=""authenticity_token"" type=""hidden"" value="".*"" />");
MatchCollection matches = r.Matches(theusercp);
foreach (Match itemcode in matches) {
    autcode = UrlEncode(itemcode.Value.Split("\"")[5]);
}