我有这些字符串:
Database_123456.bak
我只需要输入数字:
123456
我这样做:
Dim number As String = Replace("Database_123456.bak", "Database", "")
这回报我:
123456.bak
我必须添加另一个变量来再次替换最后一部分:
Dim FinalNumber as string = Replace(number, ".bak", "")
有没有办法更换同一行中的两个部分,缩写?
感谢
答案 0 :(得分:2)
您可以尝试使用Regex:
Dim x As String = "Database_123456.bak"
Dim res = Integer.Parse(Regex.Replace(x, "[^\d]", ""))
或只是
Dim res = Regex.Matches("Database_123456.bak", "\d+")
您还必须导入
Imports System.Text.RegularExpressions
答案 1 :(得分:2)
您可以使用[String].Replace
将替换链接在一起,这样您就可以在一行中完成所有操作:
Dim finalNumber = "Database_123456.bak".Replace("Database_", "").Replace(".bak", "")
注意:您在第一个替换示例中错过了下划线字符
为了改善这一点,您可能希望查看Integer.TryParse
以检查结果是否实际上是整数。像这样:
Dim inputString As String = "Database_123456.bak"
Dim finalNumber As Integer
If Integer.TryParse(inputString.Replace("Database_", "").Replace(".bak", ""), finalNumber) Then
MessageBox.Show("The final number is " & finalNumber)
Else
MessageBox.Show("The string is not in the correct format")
End If
另外注意上下壳体,因为更换是区分大小写的
答案 2 :(得分:1)
我是新来的,但如果我理解正确,这将为你效力
string text = "Database_123456.bak";
string number = text.Split('_')[1].Split('.')[0];
答案 3 :(得分:0)
string str = "Database_123456.bak";
string exteractNumber = string.Empty;
foreach (char c in str.ToCharArray())
{
int result;
if (int.TryParse(c.ToString(), out result))
{
exteractNumber = exteractNumber + c;
}
}