我支付了以下代码,但我的编码器在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
答案 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]);
}