2013-07-27 43 views
0

如何让我的程序检查字符串是否以VB.NET中的某些内容开头?在vb.net中使用类似www。*或东西的表达式

例如:

dim examplestr as string 
examplestr = textbox1.text 
if examplestr = ("www." + %something%) then 
examplestr = ("http://" + examplestr) 
elseif examplestr = ("http://" + %something%) then 
else 
if examplestr = (%something%) then 
examplestr = ("http://www." + examplestr 
end if 

回答

1

您可以使用regex,找出一个字符串的东西开始,模式就是它开始用,用^符号preceeded,这样的事情:

Dim regex = New Regex("^www\.") 
    Console.WriteLine(regex.IsMatch("www.google.com")) 'True 
    Console.WriteLine(regex.IsMatch("wwwgooglecom")) 'False 
    Console.WriteLine(regex.IsMatch("not a match")) 'False 
    Console.WriteLine(regex.IsMatch("awww")) 'False 
    Console.ReadLine() 
+0

不起作用。匹配'“wwwgooglecom”'和'“awww”'。你的代码基本上是's.Contains(“www”)'不'sStartsWith(“www。”)'。 '.'不是文字,它是通配符,你忘了匹配字符串start + end。 – CodesInChaos

+0

@CodesInChaos你是对的,我修改了我的答案。 – JMK

0

你也可以这样做:

If examplestr.StartsWith("www.") Then 
    examplestr = ... 
End If 

等。

+1

有点误导。 'StartsWith()'从此一直存在。 –

7

简单:

Dim examplestr As String = "www.example.com" 
    Select Case True 
     Case examplestr.StartsWith("http://", StringComparison.OrdinalIgnoreCase) 
      ' Do nothing? 
     Case examplestr.StartsWith("www.", StringComparison.OrdinalIgnoreCase) 
      examplestr = "http://" & examplestr 
     Case Else 
      ' It should be easy to add your own cases. 
    End Select 
1

不知道为什么没有人提到VB.NET操作Like。你可以这样写:

Dim examplestr As String = "www.google.com" 
If examplestr Like "www.*" Then 
    Debug.WriteLine("Hello") 
End If 

它更简单比Regex使用,并提供稍微更大的灵活性比StartsWith

相关问题