.net 文本分割问题
我有一个程序,可以扫描textbox1文本,并显示textbox1中的所有单词,这些单词在textbox2中的长度超过n个字母。以下是完整的代码:.net 文本分割问题,.net,vb.net,.net,Vb.net,我有一个程序,可以扫描textbox1文本,并显示textbox1中的所有单词,这些单词在textbox2中的长度超过n个字母。以下是完整的代码: Private Function filterWords(ByVal minLenght As Short, ByVal input As String) As List(Of String) Dim strInput() As String = input.Split(" ") Dim strList As New
Private Function filterWords(ByVal minLenght As Short, ByVal input As String) As List(Of String)
Dim strInput() As String = input.Split(" ")
Dim strList As New List(Of String)
strList = strInput.ToList()
For Each word In strInput
If word.Length < minLenght Then
strList.Remove(word)
End If
Next
Return strList
End Function
Private Sub textbox1_TextChanged(ByVal sender As Object, ByVal e As System.Windows.Controls.TextChangedEventArgs) Handles textbox1.TextChanged
textbox2.Text = ""
Dim strOut As New List(Of String)
strOut = filterWords(4, textbox1.Text)
For Each w In strOut
textbox2.Text += w & " "
Next
End Sub
Private Function filterWords(ByVal minlength为短,ByVal input为字符串)作为(字符串的)列表
Dim strInput()作为字符串=input.Split(“”)
Dim strList作为新列表(字符串)
strList=strInput.ToList()
每一个字都有一条横线
如果单词长度<最小长度,则
strList.Remove(word)
如果结束
下一个
返回strList
端函数
私有子textbox1_TextChanged(ByVal sender作为对象,ByVal e作为System.Windows.Controls.TextChangedEventArgs)处理textbox1.TextChanged
textbox2.Text=“”
Dim strOut作为新列表(字符串)
strOut=filterWords(4,textbox1.Text)
对于每个w英寸的strOut
textbox2.Text+=w&“
下一个
端接头
例如,如果您键入a b c d,它将不会在textbox2中显示任何内容,但如果您键入a,然后按enter键,然后按b键,它将同时显示两者。我应该写些什么来避免这种情况呢?这实际上取决于你如何定义一个词。您当前的实现定义了空格表示单词的结尾。您只需将空格传递给
input.Split
,即可定义此操作。如果还想定义句点(.)以单词结尾,请添加它:input.Split(“.”
如果要使单词以新行结尾,请添加它:
input.Split(“.”&Environment.NewLine.ToString())
另一种方法是使用正则表达式,可能如下所示:
Private Function filterWords(ByVal minLength As Short, ByVal input As String) _
As List(Of String)
Dim strList As New List(Of String)
Dim wordMatches = Regex.Matches(input, "\w+").Cast(Of Match)
For Each wordMatch In wordMatches
If wordMatch.Value.Length >= minLength Then
strList.Add(wordMatch.Value)
End If
Next
Return strList
End Function
不完全确定我是否理解,如果您键入一个b c d,那么textbox2中将不会显示任何内容,因为所有的单词都小于所需的长度,即4?除非b c d是长度可能大于4的示例单词,否则我看不出有任何错误?您希望在用户键入时发生这种情况,还是在用户完成键入后发生这种情况?i、 e.如何获取正则表达式?我应该导入什么?
导入System.Text.RegularExpressions