需要帮助将正则表达式从VB.NET转换为C#

时间:2011-12-24 18:19:09

标签: c# regex vb.net

我聘请了一名程序员在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'

3 个答案:

答案 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 "";
            }
        }