2015-07-28 52 views
0

我想用Regex.Ismatch功能在VB.net到***anything***Customer No. 9999999 ***anything***正则表达式可以匹配“*** ***任何客户号9999999 *** ***东西”

即“客户号”匹配模式 - >静态 后“客户号码”7数字字符 - >动态

我的正则表达式迄今尝试^ .*Customer No\. [0-9]+ .*$。我很接近,但如果只有Customer No. 9999999如果有前缀和后缀,只匹配它不接受

+1

逃亡'.'通过前面的'\\''。即使在评论中,我已经通过\\' – Tushar

+0

转义'\\'不明白您能否请您重写 – user3800108

+2

Works For Me。检查[这里](https://regex101.com/r/yC5iO5/1) – Tushar

回答

1

给这个模式的尝试:

"Customer No\. \d{7}" 

这是捕获字面“客户编号”加上连续7个位数成whic ...你可以访问,如:

Imports System.Text.RegularExpressions 

Module Module1 
    Sub Main() 
     Dim data As String = "***anything***Customer No. 9999999 ***anything***" 
     Dim matcher As Match = Regex.Match(data, "Customer No\. \d{7}") 
     If matcher.Success Then 
      Console.WriteLine(matcher.Value) 
     End If 
    End Sub 
End Module 

结果:

Customer No. 9999999 
+0

好吧,这就是你想要的,顺便说一句。 “。*?'是多余的,因此也是括号,它只是组0。 – maraca

+0

它匹配即使”客户号“。我想要区分大小写 – user3800108

+0

@ user3800108你说的是一个字符串“*** anything *** Customer no。9999999 ***什么***“,正则表达式仍然匹配?我没有看到结果 – Shar1er80

1

C#:

string s = " Customer No. 9999999"; 
       Regex regex = new Regex(@"^Customer No. +[0-9]{7}$"); 
       Match match = regex.Match(s); 
       if (match.Success) 
       { 
        Console.WriteLine(match.Value); 
       } 
       else 
       { 
        Console.WriteLine("not match"); 
       } 

VB:

Dim s As String = "Customer No. 9999999" 
Dim regex As New Regex(@"^Customer No. +[0-9]{7}$") 
Dim match As Match = regex.Match(s) 
If match.Success Then 
    Console.WriteLine(match.Value) 
Else 
    Console.WriteLine("not match") 
End If 
+0

嗨如果我需要匹配'dsxzx客户编号9999999 xccx' – user3800108

+0

@ user3800108你的意思是dsxzx是一个5个字母的单词吗? –

+0

不,我很接近*客户号码。 [0-9] + * $' 但不接受'客户编号9999999' 我想匹配这 '***什么**客户编号9999999 *** ***东西' – user3800108