从字符串VB.net的开头删除3个特定字符

时间:2013-09-03 17:17:29

标签: regex vb.net string replace trim

我遇到需要从字符串中删除前缀的情况(如果存在)。

Dim str As String = "samVariable"

需要转换为Variable

简单,TrimStart

str = str.trimstart("s"c, "a"c, "m"c)

...除

字符串可能始终以“sam”

开头

示例:

Dim str As String = "saleDetails"

现在变为aleDetails

哪个错了,那么Replace

怎么样?
str = str.Replace('sam','')

辉煌!现在:

示例1:

Dim str As String = "samVariable"
str = str.Replace('sam','')
str = "Variable"

示例2:

Dim str As String = "saleDetails"
str = str.Replace('sam','')
str = "saleDetails" (unaffected)

但....

如果:

Dim str As String = "Resample"
str = str.Replace('sam','')
str = "Reple"

这又是错误的

所以,我的问题是:

如何仅从字符串的开头删除“sam”?

我原本期望TrimStart("sam")能够正常工作,但它不会

2 个答案:

答案 0 :(得分:5)

if str.StartsWith("sam")
    str = str.Substring(3)
end if

不是单行,但很容易理解。

答案 1 :(得分:4)

str = New Regex("^sam").Replace(str, String.Empty)

正则表达式在字符串的开头查找sam并将其替换为空,从而有效地从头开始删除sam

编辑根据Konrad的评论,共享方法调用会更好:

str = Regex.Replace(str, "^sam", String.Empty)