我有两个不同的字符串。
www.ncbi.nlm.nih.gov/myncbi/browse/collection/40918026/?sort=date&direction=descending
和
https://www.ncbi.nlm.nih.gov/sites/myncbi/john.smith.1/bibliography/47926757/public/?sort=date&direction=descending
我需要单词收集或参考书目后的数字。我知道我可以分割“ /”斜杠,但是如果它以http开头,则不会相同。再加上一个在第5位,另一个在第6位。使用正则表达式是否有更好的方法?我知道我可以整理一堆代码来搜索每个单词,然后做一些不同的事情,但我正在寻找一种更干净的方法将其拉出
我正在使用
Dim str() As String = TextBox1.Text.Split("/")
For i As Integer = 0 To str.Length - 1
If Regex.IsMatch(str(i), "^[0-9 ]+$") Then
MessageBox.Show(str(i).ToString)
End If
Next
但希望有更清洁的东西
答案 0 :(得分:2)
答案 1 :(得分:2)
一种类似但简单的替代方法,无需拆分:
A根据您的示例:(假设一个八位数字被 “ /”)
Dim Result As String = Regex.Match(TextBox1.Text, "\/\d{8}\/").Value.Replace("/", String.Empty)
Result
将包含您的号码(如果匹配),否则String.Empty
替代示例:
仅匹配长度为8到10的数字,并用“ /”括起来:"\/\d{8,10}\/"
仅匹配长度为4个或更多数字且用“ /”括起来的数字:"\/\d{4,}\/"
用“ /”括起来的任意长度的匹配数字:"\/\d+\/"