Ruby正则表达式似乎没有看到“破折号”

时间:2017-08-23 14:57:52

标签: ruby regex

Ruby代码:

Then /^I verify ([\w\s]+) table contains the following items on the page$/ do | page_table, table |
.......

测试:

Then I verify Customer-Level Templates table contains the following items on the page

当我运行测试时,它会显示Undefined step。我想Customer-Level Templates忽略了([\w\s]+)中的短划线字符。什么是正则表达式,所以它可以抓住整个Customer-Level Templates

1 个答案:

答案 0 :(得分:2)

您可以将-添加到角色类:

/^I verify ([\w\s-]+) table contains the following items on the page$/

查看Rubular test

或者通过使用.*?来匹配除换行符之外的任何0+字符,使其更加通用:

/^I verify (.*?) table contains the following items on the page$/

请参阅another Rubular test

请注意,在Ruby中,^$匹配行边界。如果您需要匹配整个字符串,请将^替换为\A,将$替换为\z个锚点。