目前我在写:
string[] ReadText = File.ReadAllLines(_FILE);
for(int idx = 0; idx < ReadText.Length; idx++)
{
if (ReadText[idx].Contains("BANK0")
|| ReadText[idx].Contains("BANK1")
|| ReadText[idx].Contains("BANK2")
|| ReadText[idx].Contains("BANK3")
|| ReadText[idx].Contains("BANK4")
|| ReadText[idx].Contains("BANK5")
|| ReadText[idx].Contains("BANK6")
|| ReadText[idx].Contains("BANK7")
|| ReadText[idx].Contains("BANK8")
|| ReadText[idx].Contains("BANK9")
|| ReadText[idx].Contains("BANK10")
|| ReadText[idx].Contains("BANK11")
|| ReadText[idx].Contains("BANK12")
|| ReadText[idx].Contains("BANK13")
|| ReadText[idx].Contains("BANK14")
|| ReadText[idx].Contains("BANK15")
|| etc.)
}
如果我想从BANK0到BANK255检查,那太可怕了。 有没有像这样的方法:
if (ReadText[idx].Contains(string.format("BANK{0}",[0-255]))
提前致谢。
答案 0 :(得分:2)
Regex
可以帮助您:
//this will match exact the BANKx to BANK255
var isMatch = Regex.Matches(ReadText[idx], "BANK([12]([0-4]\\d|5[0-5])|\\d{1,2})").Count > 0;
//then check for if(isMatch) ...
如果对xxx
中的BANKxxx
没有限制(例如,BANK555
可以),我们可以使用更简单的模式:
var isMatch = Regex.Matches(ReadText[idx], "BANK\\d+").Count > 0;
答案 1 :(得分:0)
这样的简单函数可以工作:
Private Function strContains(input As String) As Boolean
If input.Contains("Bank") Then
Dim temp As Integer = -1
If Integer.TryParse(input.Substring(4), temp) AndAlso temp > -1 Then
Return True
End If
End If
Return False
End Function
If strContains(ReadText[idx]) Then
End If