使用正则表达式在Ruby中查找精确的模式匹配

Tim*_*Tim 8 ruby regex

我将如何使用正则表达式测试完全匹配.

"car".match(/[ca]+/) 返回true.

由于正则表达式模式不包含"r",我如何才能使上述语句返回false?包含"c"和"a"以外的任何字符的任何字符串都应返回false.

"acacaccc"应该返回true

"acacacxcc"应该返回false

sid*_*yll 10

添加一些锚点:

/^[ca]+$/
Run Code Online (Sandbox Code Playgroud)

  • 不:`"c \nX".匹配(/ ^ [ca] + $ /)`. (2认同)

Chr*_*ald 7

你只需要锚点.

"car".match(/^[ca]+$/)
Run Code Online (Sandbox Code Playgroud)

这将强制整个字符串由"c"或"a"组成,因为"^"和"$"表示字符串的"开始"和"结束".没有它们,只要它匹配字符串的任何部分,正则表达式就会成功.

  • @cam:其实你想要`\ z`,而不是`\ Z`,否则你会想念``c \n"`. (5认同)
  • 这打破了诸如"caca \nrabbits"之类的字符串.正确的锚点是`\ A`和`\ Z` (3认同)