Behave 简明教程

Behave - Regular Expressions

让我们对正则表达式的语法进行总体了解 −

  1. 点 (.) − 等效于任何字符。

  2. 脱字符号 (^) − 等效于字符串的开头。(^…)

  3. 美元符号 ($) − 等效于字符串的结尾。 (…$)

  4. | − 表达式 x| y,匹配 x 或 y。

  5. \ − Escape character.

  6. \. − 匹配点。 (.)

  7. \\ − 匹配反斜杠。 (\)

  8. […] − 声明一组字符。 ([A-Za-z])

  9. \d − 匹配数字。 ([0-9])

  10. \D − Matches non-digit.

  11. \s − 匹配空白字符。

  12. \S − 匹配非空白字符。

  13. \w − Matches alphanumeric.

  14. \W − Matches non-alphanumeric.

  15. (…) − 将正则表达式的模式分组。

  16. \number − 按照索引匹配前一组文本。(\1)

  17. (? P<name>…) − 匹配模式,并将它存储在 name 参数中。

  18. (?P=name) − 匹配所有与前一组 name 匹配的文本。

  19. (?:…) − 匹配模式,但无法捕获文本。

  20. (?#…​) − 注释(不被视为模式)。叙述模式的详细信息。

如果一个字符、字符集或组需要重复多次,有必要提供正则表达式的模式基数。

  1. ?:基数为 0…​ 1 的模式:非必需的(问号)

  2. -:基数为 0 或更多,0.. 的模式(星号)

  3. + -:基数为 1 或更多,1.. 的模式(加号)

  4. {n}:为 n 次重复匹配一个模式。

  5. {a ,b}:为 a 至 b 次重复匹配一个模式。

  6. [A-Za-z]+:匹配多个字母字符。

功能文件中可能会有包含几乎相似短语的步骤。Behave 具有解析能力。为此使用了 use_step_parser 方法,我们必须将解析器类型作为参数传递给该方法。

对于正则表达式匹配器,我们必须传递参数 re。参数 (? P<name>…​) 用来从步骤定义获取参数。

Feature File (almost similar steps)

类似步骤的功能文件如下所示 −

Feature − Payment Process
Scenario − Check Debit transactions
      Given user is on "debit" screen
   Scenario − Check Credit transactions
      Given user is on "credit" screen

Corresponding Step Implementation File

步骤实现文件如下所示 −

from behave import *
#define parser type
use_step_matcher("re")
#regular expression parsing
@given('user is on "(?P<payment>.*)" screen')
def step_impl(context, payment):
   print("Screen type: ")
   print(payment)

Output

运行功能文件后获得的输出如下。在此,我们使用了命令 behave --no-capture -f plain

regular expressions

输出显示了借方和贷方。这两个值在功能文件中以几乎相似的步骤传递。在步骤执行中,我们使用正则表达式解析了两个步骤。