2009-09-10 33 views
4

我没有使用正则表达式,所以请原谅我...如何使用RegEx?

我有这样的字符串:

string str = "https://abce/MyTest"; 

我要检查,如果特定字符串开头“https://开头”和结束用“/ MyTest”。

我该如何达到目的?

+0

你确定你想要// MyTest吗?这似乎不是一个有效的网址。 – stevehipwell 2009-09-10 11:15:25

+0

你关心案件吗?它可以是“mytest”吗? – Kobi 2009-09-10 11:22:12

回答

17

这个正则表达式:

^https://.*/MyTest$ 

会做什么你问。

^匹配字符串的开头。

https://将完全匹配。

.*将匹配任何类型的任何数量的字符(*部分)(.部分)。如果您想确保中间至少有一个字符,请改为使用.+

/MyTest完全匹配。

$匹配字符串的末尾。

要验证匹配,使用方法:在MSDN Regex页面

Regex.IsMatch(str, @"^https://.*/MyTest$"); 

更多信息。

+0

+1 U击败了我。 – stevehipwell 2009-09-10 11:16:12

+2

+1对于部件的细分:) – 2009-09-10 11:20:17

+1

@ Steve3000:最后!我花了最后三个小时被“殴打”:) – 2009-09-10 11:21:05

9

尝试以下方法:

var str = "https://abce/MyTest"; 
var match = Regex.IsMatch(str, "^https://.+/MyTest$"); 

^标识符字符串的开头相匹配,而$标识符字符串的末尾匹配。 .+位简单地表示任何字符序列(除了空序列)。

当然,您需要为此导入System.Text.RegularExpressions命名空间。

2

在.NET中:

^https://.*/MyTest$ 
1

尝试Expresso,有利于构建.NET正则表达式,并教您在同一时间的语法得心应手的工具。

+0

+1我选择的当前正则表达式工具。 – stevehipwell 2009-09-10 12:17:24

4

我想检查一下特定的字符串是以“https://”开头还是以“/ MyTest”结尾。

那么,你可能使用正则表达式。但它更清晰(可能更快),只是say what you mean

str.StartsWith("https://") && str.EndsWith("/MyTest") 

然后,您不必担心是否有任何在你的匹配字符串中的字符的正则表达式中需要转义。 (对于这个例子,他们不。)

+0

是的!优秀点。 – 2009-09-17 15:49:35