我有一个文本,在本文中我搜索了一个文件。我通过搜索它的扩展名找到它,但不知道文件的名称。 当我找到这个字符串时,我有扩展名的索引(indexof(“。jpg”))
现在,我需要完整的文件名。我唯一知道的是文件名在“>”后面开始符号,但文件中有很多这些。有没有办法获得“>”的索引在字符串中,从特定索引开始,然后向后退?
答案 0 :(得分:4)
试试这个正则表达式:
>([A-Za-z0-9-+. _]+[.]jpg)
或者更好:
>([^[\]\*\/\\<>|]+[.]jpg)
我可能错过了一个允许的角色,但是它涵盖了大部分内容并且应该很容易修改。使用如下表达式:
Public Iterator Function FindJPGFileNames(inpupText As String) As IEnumerable(Of String)
For Each match In RegEx.Matches(inputString, ">([^[\]\*\/\\<>|]+[.]jpg)")
Yield match.Groups(1).Value
Next match
End Function
或
Public Function FindJPGFileNames(inpupText As String) As IEnumerable(Of String)
Dim matches = RegEx.Matches(inputString, ">([^[\]\*\/\\<>|]+[.]jpg)")
Return matches.Select(Function(m) m.Groups(1).Value)
End Function
答案 1 :(得分:0)
或者另外我也找到了这个解决方案:
Private Function searchimages(ByVal s As String, ByVal ending As String) As List(Of String)
Dim los As New List(Of String)
Dim position As Integer = 0
While position <> -1
position = s.IndexOf(ending, position, StringComparison.CurrentCultureIgnoreCase)
If position <> -1 Then
Dim endPosition As Integer = position + ending.Length
Dim startposition As Integer = s.LastIndexOf(">", position - 1, StringComparison.CurrentCultureIgnoreCase) + 1
los.Add(s.Substring(startposition, endPosition - startposition))
position = endPosition
End If
End While
Return (los)
End Function