如何创建与以百分号开头和结尾的字符串匹配的RegEx?

时间:2017-04-26 18:27:03

标签: c# regex

在给定的程序中,字符串应以百分号开头和结尾,并且可以包含任意数量的字符。因此,以下字符串应该有效:

  • "%%"
  • "% %"
  • "%a%"
  • "%1%"
  • "% a1a %"
  • "%%%"

以下字符串(例如)因此无效:

  • " %%"
  • "%% "
  • " % "
  • " a%%b "

我正在尝试使用正则表达式验证这些,但无法确定正确的表达式。在C#中,我目前有:

Regex.IsMatch(stringToValidate, "%.*%")

上面提供的所有字符串目前都匹配。但我不希望它匹配无效字符串集。

3 个答案:

答案 0 :(得分:1)

^%.*%$与多行标志一起使用:

https://regex101.com/r/QDX5h3/1

答案 1 :(得分:1)

你需要指定一个“锚”(在你的情况下是两个:开始“^”并结束字符串的“$”)。 否则,您的模式将匹配内部整个字符串的任何位置 " %...% "abc%...%xx也会匹配。

因此,使用:

 "^%.*%$"

答案 2 :(得分:1)

您可以使用:

bool foundMatch = Regex.IsMatch(stringToValidate, "^%.*%$");

enter image description here

Regex Demo