尝试搜索具有起点和终点的字符串
Trying to search through a string with a start and end point
我需要搜索一些字符串并寻找某个区域的起点和终点,两点之间的距离在整个字符串中会有所不同,所以我不能使用基于长度的东西
这是我要查找的字符串之一的示例
IF (SUBSTRING(A.DATE_QUOTE_CNV,1,4) >= '1900' AND SUBSTRING(A.DATE_QUOTE_CNV,1,4) <= '2999' AND SUBSTRING(A.DATE_QUOTE_CNV,5,2) <= '12' AND SUBSTRING(A.DATE_QUOTE_CNV,5,2) >= '01' AND SUBSTRING(A.DATE_QUOTE_CNV,7,2) <= '31' AND SUBSTRING(A.DATE_QUOTE_CNV,7,2) >= '01',CONCAT(SUBSTRING(A.DATE_QUOTE_CNV,1,4),'-',SUBSTRING(A.DATE_QUOTE_CNV,5,2),'-',SUBSTRING(A.DATE_QUOTE_CNV,7,2)))"
我想使用的起点是“IF (SUBSTRING(”,我希望终点是“7,2)))”,因为这两者始终保持一致。我该怎么做?
获取起点和终点的索引,并使用它们从搜索查询中获取子字符串。
你可以使用类似这样的东西。
' stringToSearch is the value you want to search
'
Dim stringToSearch As String = "<SomeText>IF (SUBSTRING(A.DATE_QUOTE_CNV,1,4) >= '1900' AND SUBSTRING(A.DATE_QUOTE_CNV,1,4) <= '2999' AND SUBSTRING(A.DATE_QUOTE_CNV,5,2) <= '12' AND SUBSTRING(A.DATE_QUOTE_CNV,5,2) >= '01' AND SUBSTRING(A.DATE_QUOTE_CNV,7,2) <= '31' AND SUBSTRING(A.DATE_QUOTE_CNV,7,2) >= '01',CONCAT(SUBSTRING(A.DATE_QUOTE_CNV,1,4),'-',SUBSTRING(A.DATE_QUOTE_CNV,5,2),'-',SUBSTRING(A.DATE_QUOTE_CNV,7,2)))<SomeText>"
Dim startPoint As String = "IF (SUBSTRING("
Dim endPoint As String = "7,2)))"
Dim result As String = String.Empty
If stringToSearch.Contains(startPoint) And stringToSearch.Contains(endPoint) Then
Dim startIndex = stringToSearch.IndexOf(startPoint)
Dim endIndex = stringToSearch.IndexOf(endPoint)
' search result
result = stringToSearch.Substring(startIndex, endIndex - startIndex + endPoint.Length)
End If
我需要搜索一些字符串并寻找某个区域的起点和终点,两点之间的距离在整个字符串中会有所不同,所以我不能使用基于长度的东西
这是我要查找的字符串之一的示例
IF (SUBSTRING(A.DATE_QUOTE_CNV,1,4) >= '1900' AND SUBSTRING(A.DATE_QUOTE_CNV,1,4) <= '2999' AND SUBSTRING(A.DATE_QUOTE_CNV,5,2) <= '12' AND SUBSTRING(A.DATE_QUOTE_CNV,5,2) >= '01' AND SUBSTRING(A.DATE_QUOTE_CNV,7,2) <= '31' AND SUBSTRING(A.DATE_QUOTE_CNV,7,2) >= '01',CONCAT(SUBSTRING(A.DATE_QUOTE_CNV,1,4),'-',SUBSTRING(A.DATE_QUOTE_CNV,5,2),'-',SUBSTRING(A.DATE_QUOTE_CNV,7,2)))"
我想使用的起点是“IF (SUBSTRING(”,我希望终点是“7,2)))”,因为这两者始终保持一致。我该怎么做?
获取起点和终点的索引,并使用它们从搜索查询中获取子字符串。
你可以使用类似这样的东西。
' stringToSearch is the value you want to search
'
Dim stringToSearch As String = "<SomeText>IF (SUBSTRING(A.DATE_QUOTE_CNV,1,4) >= '1900' AND SUBSTRING(A.DATE_QUOTE_CNV,1,4) <= '2999' AND SUBSTRING(A.DATE_QUOTE_CNV,5,2) <= '12' AND SUBSTRING(A.DATE_QUOTE_CNV,5,2) >= '01' AND SUBSTRING(A.DATE_QUOTE_CNV,7,2) <= '31' AND SUBSTRING(A.DATE_QUOTE_CNV,7,2) >= '01',CONCAT(SUBSTRING(A.DATE_QUOTE_CNV,1,4),'-',SUBSTRING(A.DATE_QUOTE_CNV,5,2),'-',SUBSTRING(A.DATE_QUOTE_CNV,7,2)))<SomeText>"
Dim startPoint As String = "IF (SUBSTRING("
Dim endPoint As String = "7,2)))"
Dim result As String = String.Empty
If stringToSearch.Contains(startPoint) And stringToSearch.Contains(endPoint) Then
Dim startIndex = stringToSearch.IndexOf(startPoint)
Dim endIndex = stringToSearch.IndexOf(endPoint)
' search result
result = stringToSearch.Substring(startIndex, endIndex - startIndex + endPoint.Length)
End If