我正在使用Cucumber java。在步骤定义中,我想使用问号作为字符串,而不是被视为正则表达式,这意味着我需要转义它。我已经看到这个topic关于逃避并尝试申请:
@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>
如何编写我的步骤,以便正确转义问号,而不添加其他字符?
编辑: 在问号前面使用单个反斜杠会导致字符串文字异常中出现非法转义字符。奇怪的是,在步骤中的任何地方使用单个反斜杠转义引号并不会显示此异常。
答案 0 :(得分:-1)
这应该有效:
如果你想要实现这个When I make PUT /service/<string>/url?pathParam=<string>
:
@When("^I make PUT /service/\"(.*?)\"/url\\?pathParam=\"(.*?)\"$")
与此相关的有用信息:How to escape special characters in Cucumber step definitions?