在给定的程序中,字符串应以百分号开头和结尾,并且可以包含任意数量的字符。因此,以下字符串应该有效:
"%%"
"% %"
"%a%"
"%1%"
"% a1a %"
"%%%"
以下字符串(例如)因此无效:
" %%"
"%% "
" % "
" a%%b "
我正在尝试使用正则表达式验证这些,但无法确定正确的表达式。在C#中,我目前有:
Regex.IsMatch(stringToValidate, "%.*%")
上面提供的所有字符串目前都匹配。但我不希望它匹配无效字符串集。
答案 0 :(得分:1)
将^%.*%$
与多行标志一起使用:
答案 1 :(得分:1)
你需要指定一个“锚”(在你的情况下是两个:开始“^”并结束字符串的“$”)。
否则,您的模式将匹配内部整个字符串的任何位置
" %...% "
或abc%...%xx
也会匹配。
因此,使用:
"^%.*%$"
答案 2 :(得分:1)