当前位置:  开发笔记 > 编程语言 > 正文

在线找到多个匹配绑定有两个不同的参数

如何解决《在线找到多个匹配绑定有两个不同的参数》经验,为你挑选了1个好方法。

我在同一个功能文件中写了两行(When's)

When user $action1$ $key1$ with $value1$ for $atttributeType_Value$ in $Filename1_SectionId1$
Then abc
When user $action2$ $key2$ with $value2$ in $Filename2_SectionId2$
Then def

步骤定义文件中的相应步骤定义

[When(@"user (.*) (.*) with (.*) for (.*) in (.*)")]
public void abc()
{   //operation }

[When(@"user (.*) (.*) with (.*) in (.*)")]
public void def()
{   //operation }

但是,它显示错误为"找到多个匹配绑定.导航到第一个匹配..."

当我尝试导航第一行时给出错误...但是当我使用第二行时导航.它正确导航.

我在"<"和">"所在的地方使用了"$".



1> Lunivore..:

问题是你的第二个正则表达式:

with (.*) in (.*)

匹配这两行

with a partridge in a pear tree
with a partridge for Christmas in a pear tree

在第一个例子中,它将拾取"鹧"和"梨树"作为两个参数.在第二个中,它会选择"圣诞节的鹧"和"梨树"作为论据.由于您的第一个正则表达式也与第二行匹配,因此确实找到了多个绑定.

你可以使用不同的正则表达式.例如,如果您想挑出一个完整的单词而不包含任何空格,请尝试(\S*)代替(.*).这.匹配任何东西,包括空格.更多关于正则表达式的信息.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有