Dav*_*lla 2 ruby regex cucumber
在黄瓜步骤定义中使用以下两个语句有什么区别?当我在Rubular中测试它们时,它们都能在我能想象到的所有情况下工作.在第二种情况下,我的语法突出显示更可能看起来很好(没有额外的双引号搞砸了).
即使在Stack Overflow语法高亮显示中,它也会在第一个语言中被搞砸.更常见的第一个例子有什么优点?
Given /^My name is "([^"]*)"$/ do |myname|
Given /^My name is "(.+)"$/ do |myname|
Run Code Online (Sandbox Code Playgroud)
[^"]*表示N(N> = 0)个字符,"
.+表示N(N> 0)个字符,包括"
如果主题超过1个字符,并且没有引号("),则两个正则表达式模式相同.
但是,考虑一下这个字符串:My name is "special_name_contain_"_laugh"
再次运行你的模式,它们不一样:)
提供以下内容时,第一个不会中断:
My name is "Henry James" and some other condition is "something else"
Run Code Online (Sandbox Code Playgroud)
第一个正则表达式将引用字符串中的字符限制为非引号字符 - 因此它只会拾取Henry James.第二个正则表达式匹配引号字符后跟其他任何内容(包括其他引号字符),然后匹配结束引号字符 - 所以myname在第二种情况下将是:
Henry James" and some other condition is "something else
Run Code Online (Sandbox Code Playgroud)
这意味着在测试用例中只能有一个引用值 - 这比第一个正则表达式的限制更具限制性(您只能使用不包含引号字符的引用值).
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |