【发布时间】:2009-09-10 11:12:12
【问题描述】:
我有一个类似的字符串:
string str = "https://abce/MyTest";
我想检查特定字符串是否以https:// 开头并以/MyTest 结尾。
我怎样才能做到这一点?
【问题讨论】:
-
你确定你想要 //MyTest 吗?这似乎不是一个有效的网址。
-
你关心案例吗?可以是
mytest吗?
我有一个类似的字符串:
string str = "https://abce/MyTest";
我想检查特定字符串是否以https:// 开头并以/MyTest 结尾。
我怎样才能做到这一点?
【问题讨论】:
mytest吗?
这个正则表达式:
^https://.*/MyTest$
会按照你的要求去做。
^ 匹配字符串的开头。
https:// 将完全匹配。
.* 将匹配任意数量的任何类型的字符(* 部分)(. 部分)。如果要确保中间至少有一个字符,请改用.+。
/MyTest 完全匹配。
$ 匹配字符串的结尾。
要验证匹配,请使用:
Regex.IsMatch(str, @"^https://.*/MyTest$");
更多信息请访问 MSDN Regex 页面。
【讨论】:
尝试以下方法:
var str = "https://abce/MyTest";
var match = Regex.IsMatch(str, "^https://.+/MyTest$");
^ 标识符匹配字符串的开头,而$ 标识符匹配字符串的结尾。 .+ 位仅表示任何字符序列(空序列除外)。
当然,您需要为此导入 System.Text.RegularExpressions 命名空间。
【讨论】:
我想检查特定字符串是否以“https://”开头并以“/MyTest”结尾。
好吧,您可以为此使用正则表达式。但是say what you mean 更清楚(并且可能更快):
str.StartsWith("https://") && str.EndsWith("/MyTest")
您不必担心匹配字符串中的任何字符是否需要在正则表达式中转义。 (对于这个例子,他们没有。)
【讨论】:
在 .NET 中:
^https://.*/MyTest$
【讨论】:
试试Expresso,它非常适合构建 .NET 正则表达式并同时教你语法。
【讨论】:
生成正则表达式的HAndy工具
【讨论】: