我正在尝试做同样的事情: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吗?
答案 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