正则表达式找到带可选空格的字符串

时间:2014-12-02 22:12:15

标签: c# regex

我正在尝试验证字符串是否具有值

edit=yes
edit = yes
edit= yes
edit =yes
edit=yesonce
edit = yesonce
edit= yesonce
edit =yesonce

到目前为止我在edit=yes上的所有内容都匹配,但仅此而已。我认为我的可选空格参数是错误的但不确定如何。

edit[/s]?=[/s]?[yes|yesonce]

3 个答案:

答案 0 :(得分:1)

试试这个:

edit\s?=\s?yes(once)?

正则表达式出现问题:

  • 空格是\s,而不是/s - 转义字符是反斜杠,而不是斜杠。
  • 您不需要[]围绕一个角色(或转义的实体)
  • [yes|yesonce]表示任何一个字符y e s | y e s o n c e,而不是yesyesonce
  • 您的意思是(yes|yesonce),虽然它始终与yes匹配,但在once匹配后无法捕获yes。您可以使用(yesonce|yes)来避免这种情况,但是..
  • yes(once)?更简单:)

如果您打算允许任意数量的空格而不是一个空格,则需要用?替换相应的*符号("零或一个")( "任何数字,包括零"):

edit\s*=\s*yes(once)?

答案 1 :(得分:0)

试试这个正则表达式:/edit\s*=\s*(yes|yesonce)/ig

这将确保:

  • 编辑字词
  • 是否有空格
  • =
  • 是否有空格 *是的话

答案 2 :(得分:0)

你可以使用这个正则表达式,你的斜杠是相反的:

(edit[\s]?=[\s]?[yes|yesonce]+)

测试用例here