Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式javascript到vb_Javascript_Regex_Vb.net_Repeat - Fatal编程技术网

正则表达式javascript到vb

正则表达式javascript到vb,javascript,regex,vb.net,repeat,Javascript,Regex,Vb.net,Repeat,我有一个javascript函数maxreat。我很难把它翻译成vb.net,似乎正则表达式引擎不同…而且我对正则表达式不是很在行。您介意为我指出将正则表达式字符串转换为相应的vb.net字符串的正确方向吗。。。我知道如何做逻辑后记,只是丢失了正则表达式字符串 我说的是这个函数 function maxRepeat(input) { var reg = /(?=((.+)(?:.*?\2)+))/g; var sub = ""; var maxs

我有一个javascript函数maxreat。我很难把它翻译成vb.net,似乎正则表达式引擎不同…而且我对正则表达式不是很在行。您介意为我指出将正则表达式字符串转换为相应的vb.net字符串的正确方向吗。。。我知道如何做逻辑后记,只是丢失了正则表达式字符串

我说的是这个函数

function maxRepeat(input) {
        var reg = /(?=((.+)(?:.*?\2)+))/g;
        var sub = ""; 
        var maxstr = ""; 
        reg.lastIndex = 0; 
        sub = reg.exec(input); 
        while (!(sub == null)) {
            if ((!(sub == null)) && (sub[2].length > maxstr.length)) {
                maxstr = sub[2];
            }
            sub = reg.exec(input);
            reg.lastIndex++; 
        }
        return maxstr;
    }
此函数返回至少出现两次的最大字符序列。“一二一三一四”会首先返回“一个t”,所以“不是转换服务”,但我自己也很好奇。其次,您的正则表达式完全适合在VB.NET中使用。第三,您可以利用
Regex.Matches
,而不是按顺序检查匹配。最后,不能将变量命名为“sub”,它是VB.NET中的保留字

现在,这是您在VB.NET中的函数:

Private Function maxRepeat(input As String) As String
   maxRepeat = String.Empty
   Dim reg As String = "(?=((.+)(?:.*?\2)+))"
   For Each m As Match In Regex.Matches(input, reg)
      If m IsNot Nothing And m.Groups(2).Value.Length > maxRepeat.Length Then
           maxRepeat = m.Groups(2).Value
      End If
   Next
End Function
或者,使用LINQ(不要忘记
System.LINQ
reference):

可通过以下方式调用该函数:

Dim res As String = maxRepeat("324234241122332211345435311223322112342345541122332211234234324")
结果:

1122332211234234

对你有用吗?如果是这样,请考虑接受这个答案。
1122332211234234