Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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
VB.NET-如何拆分包含“的所有列表框项目”;“文本”;到其他列表_.net_Vb.net_List_Split_Listbox - Fatal编程技术网

VB.NET-如何拆分包含“的所有列表框项目”;“文本”;到其他列表

VB.NET-如何拆分包含“的所有列表框项目”;“文本”;到其他列表,.net,vb.net,list,split,listbox,.net,Vb.net,List,Split,Listbox,我的列表框1包括: ListBox1.Items.Add("https://myweb.com/#questionsquestions/4444444/x/testxx") ListBox1.Items.Add("https://translate.google.com/#questions/HAHAHAHA/testxx") ListBox1.Items.Add("https://translate.google.com/#questions/HAHAHAHA/testxx") ListBox

我的列表框1包括:

ListBox1.Items.Add("https://myweb.com/#questionsquestions/4444444/x/testxx")
ListBox1.Items.Add("https://translate.google.com/#questions/HAHAHAHA/testxx")
ListBox1.Items.Add("https://translate.google.com/#questions/HAHAHAHA/testxx")
ListBox1.Items.Add("http://stackexchange.com/")
ListBox1.Items.Add("http://stackoverflow.com/questions/23304084/how-to-remove-text-from-a-list-box")
ListBox1.Items.Add("http://stackoverflow.com/users/2227126/abdullah-kassha")
ListBox1.Items.Add("http://stackoverflow.com/questions/7860214/vb-net-split-string")
ListBox1.Items.Add("#")
ListBox1.Items.Add("http://stackoverflow.com/questions/25808080/categorize-listbox-items-by-color")
ListBox1.Items.Add("")
ListBox1.Items.Add("http://stackoverflow.com/questions/7073532/textbox-text-to-listbox-items-vb-net")
ListBox1.Items.Add("questiooonsquestions/ID_3324244/v")
ListBox1.Items.Add("cccccquestions/ID_3324244/RNA")
ListBox1.Items.Add("cccccquestions/ID_9999999/RNA")
我想在
“questions/”
“/”
之间拆分或获取文本,不包含任何空项或重复项

示例图片:


您可以使用正则表达式:

Imports ystem.Text.RegularExpressions
例如:

Dim input As String = "cccccquestions/ID_9999999/RNA"
Dim re As New Regex("questions\/(.*)\/")
Dim m As Match = re.Match(input)
Dim id As String = m.Groups(1).Value 'yields "ID_9999999"

LINQ电源和字符串方法:

Dim items = From i In listBox1.Items.Cast(Of String)()
            Let index = i.IndexOf("questions/", StringComparison.OrdinalIgnoreCase)
            Where index >= 0
            Let startIndex = index + "questions/".Length
            Let endIndex = i.IndexOf("/", startIndex)
            Where endIndex >= 0
            Select i.Substring(startIndex, endIndex - startIndex)

listBox2.Items.AddRange(items.Distinct().ToArray())
结果:

4444444
HAHAHAHA
23304084
7860214
25808080
7073532
ID_3324244
ID_9999999
4444444
HAHAHAHA
23304084
7860214
25808080
7073532
ID_3324244
ID_9999999

启动一个超级简单的项目,并将此函数放在主类中:

Public Function Simon(ByVal x As String) As String
        Try
            Return Split(Split(x, "questions/")(1), "/")(0)
        Catch ex As Exception
            Return ""
        End Try
End Function
另外,放一个可爱的
按钮
,并将此代码放入其中

For Each y As String In ListBox1.Items
        If Not ListBox2.Items.Contains(simon(y)) And Not simon(y) = "" Then
        Dim smo As String = simon(y)
        ListBox2.Items.Add(smo)
        End If
Next
结果:

4444444
HAHAHAHA
23304084
7860214
25808080
7073532
ID_3324244
ID_9999999
4444444
HAHAHAHA
23304084
7860214
25808080
7073532
ID_3324244
ID_9999999

到目前为止有什么尝试吗?当然,我试过了,我已经将字符串列表拆分为ComboBox,但字符串不包含空的或重复的项,但不能在listbox中以这种方式执行相同的操作/ᵒʳʳʸ ᶠᵒʳ ᵐʸ ᵇᵃᵈ ᵉᶰᵍˡᶤˢʰ ᶤᵗˢ ᶰᵒᵗ ᵐʸ ᵐᵒᵗʰᵉʳ ˡᵃᶰᵍᵘᵃᵍᵉ如何将它们添加到列表框中?当输入下一个值时,您是否可以不进行测试?(在ListBox中使用foreach元素?)并检查它是否已经包含该值?如果值不是“”?