例如"我把她的狗带到了我的狗跳进去的湖中#34;我希望程序告诉我在我的例子中位置4和11的位置
答案 0 :(得分:0)
此功能应该有效:
Private Function FindWord(Text As String, Word As String) As List(Of Integer)
Dim results As New List(Of Integer)
Dim target As String = Word.ToLower
Dim p() As String = Split(Text.ToLower, " ")
For i As Integer = 0 To p.Length - 1
If p(i).Contains(target) Then results.Add(i + 1)
Next
Return results
End Function
它将输入解析为“单词”数组。然后它使用contains函数来处理标点符号。
您可以这样称呼它:
Dim r As List(Of Integer) = FindWord("my walked her dog down to the lake which my dog jumped in", "dog")
如果字符串包含doghouse,你必须考虑会发生什么。如果您不想这样做,那么必须修改它。在这种情况下,您需要过滤掉标点符号,并在其余部分中查找完全匹配。
Private Function FindWord(Text As String, Word As String) As List(Of Integer)
Dim results As New List(Of Integer)
Dim target As String = Word.ToLower
Dim rgx As New Regex("[^a-z]")
Dim p() As String = Split(Text.ToLower, " ")
For i As Integer = 0 To p.Length - 1
If rgx.Replace(p(i), "") = target Then results.Add(i + 1)
Next
Return results
End Function
答案 1 :(得分:0)