我聘请了一名程序员在Regex中为我编写代码。问题是他用Visual Basic编写了它,我需要用C#编写。
我尝试使用转换器,但它没有解决问题。
介意帮助我将以下正则表达式转换为C#?问题出在GetBetween和Strings上谢谢:
string iamtwit = ss("http://www.mailinator.com" + GetBetween(GetBetween(iamtwit1, matches.ToString(), "</a>"), "<a href=", ">"));
和
MessageBox.Show(GetBetween(matches1.ToString(), "<a href=\"", Strings.Chr(34)));
以下是原始代码:
Dim iamtwit As String = ss("http://www.mailinator.com" & GetBetween(GetBetween(iamtwit1, matches.ToString, "</a>"), "<a href=", ">"))
MsgBox(GetBetween(matches1.ToString, "<a href=""", Chr(34)))
我收到的错误消息是:
当前上下文中不存在名称“GetBetween”
当前上下文中不存在名称'Strings'
答案 0 :(得分:2)
GetBetween很可能是来自this article的代码。
转换为C#:
public string GetBetween(string sSearch, string sStart, string sStop, int lSearch = 1)
{
string retVal = null;
lSearch = (sSearch.IndexOf(sStart, lSearch - 1, StringComparison.InvariantCultureIgnoreCase) + 1);
if (lSearch > 0)
{
lSearch = lSearch + sStart.Length;
int lTemp = 0;
lTemp = (sSearch.IndexOf(sStop, lSearch - 1) + 1);
if (lTemp > lSearch)
{
retVal = sSearch.Substring(lSearch - 1, lTemp - lSearch);
}
}
return retVal;
}
答案 1 :(得分:1)
您在C#中发布的代码,而不是VB.NET。它也不包含任何正则表达式。
导入程序集并直接使用类型,就像您似乎已经在做的那样。我假设你需要GetBetween
方法。
.NET的一个要点是人们可以使用不同的语言并与之互操作。
答案 2 :(得分:1)
private string getBetween(string strSource, string strStart, string strEnd)
{
int Start, End;
if (strSource.Contains(Starting) && strSource.Contains(Ending))
{
Start = strSource.IndexOf(Starting, 0) + strStart.Length;
End = strSource.IndexOf(strEnd, Start);
return strSource.Substring(Start, End - Start);
}
else
{
return "";
}
}