0

我正在使用黄瓜 java。在步骤定义中,我想将问号用作字符串而不是被视为正则表达式,这意味着我需要对其进行转义。我已经看到有关转义的主题并尝试申请:

@When("^I make PUT /service/(.*)/url\\?pathParam=(.*)$")

在功能文件中,该步骤将显示为:

When I make PUT /service/<string>/url\?pathParam=<string>

(请注意问号前的反斜杠)

我想得到:

When I make PUT /service/<string>/url?pathParam=<string>

我应该如何编写我的步骤,以便正确转义问号,而不添加其他字符?

编辑:在问号前使用单个反斜杠会导致字符串文字异常中出现非法转义字符。奇怪的是,在步骤中的任何位置使用单个反斜杠转义引号不会显示此异常。

4

1 回答 1

-1

这应该有效:

如果您想实现这一目标When I make PUT /service/<string>/url?pathParam=<string>

@When("^I make PUT /service/\"(.*?)\"/url\\?pathParam=\"(.*?)\"$")

此处与此相关的有用信息:如何在 Cucumber 步骤定义中转义特殊字符?

于 2016-05-19T11:16:30.470 回答