找出两个字符串正则表达式中常见的词语发生

时间:2014-03-13 01:06:56

标签: javascript regex vb.net

我正在尝试做同样的事情:Find The Common Occurrences Of Words In Two Strings但我想在VB.net中使用它。

var tester = "a string with a lot of words";

function getMeRepeatedWordsDetails ( sentence ) {
  sentence = sentence + " ";
  var regex = /[^\s]+/g;
  var regex2 = new RegExp ( "(" + tester.match ( regex ).join ( "|" ) + ")\\W", "g" );
  matches = sentence.match ( regex2 );
  var words = {};
  for ( var i = 0; i < matches.length; i++ ) {
    var match = matches [ i ].replace ( /\W/g, "" );
    var w = words [ match ];
    if ( ! w )
      words [ match ] = 1;
    else
      words [ match ]++;
  }   
  return words;
} 

console.log ( getMeRepeatedWordsDetails ( "another string with some words" ) );

这是我到目前为止所拥有的:

    Dim tester As String = "a string with a lot of words"
    sentence = sentence & " "
    Dim regex As New Regex("/[^\s]+/g")
    Dim m As Match = regex.Match(tester)

    'not working
    Dim regex2 As Regex = New Regex("(" + regex.Match(tester).join("|") + ")\\W", "g")

你能帮我把它放到VB.net吗?

1 个答案:

答案 0 :(得分:0)

我想我明白了:

    'string of interest
    Dim sentence As String = "check this string with some words"
    sentence = sentence & " "

    'this is our base string
    Dim BaseStr As String = "base string with a lot of words"

    'use this one liner to create the pattern
    Dim pattern2 As String = "(" & BaseStr.Replace(" ", "|") & ")\W"

    'set up the regex
    Dim regex As New Regex(pattern2)
    Dim mc As MatchCollection
    mc = regex.Matches(sentence)

    'loop to get the results
    For ct As Integer = 0 To mc.Count - 1
        Dim m As Match = mc.Item(ct)
        If m.Success Then
            'returns two groups; get the second without a space
            Debug.Print(m.Groups(1).Captures(0).ToString() & "<<")
        End If
    Next