Behave 简明教程
Behave - Regular Expressions
让我们对正则表达式的语法进行总体了解 −
-
点 (.) − 等效于任何字符。
-
脱字符号 (^) − 等效于字符串的开头。(^…)
-
美元符号 ($) − 等效于字符串的结尾。 (…$)
-
| − 表达式 x| y,匹配 x 或 y。
-
\ − Escape character.
-
\. − 匹配点。 (.)
-
\\ − 匹配反斜杠。 (\)
-
[…] − 声明一组字符。 ([A-Za-z])
-
\d − 匹配数字。 ([0-9])
-
\D − Matches non-digit.
-
\s − 匹配空白字符。
-
\S − 匹配非空白字符。
-
\w − Matches alphanumeric.
-
\W − Matches non-alphanumeric.
-
(…) − 将正则表达式的模式分组。
-
\number − 按照索引匹配前一组文本。(\1)
-
(? P<name>…) − 匹配模式,并将它存储在 name 参数中。
-
(?P=name) − 匹配所有与前一组 name 匹配的文本。
-
(?:…) − 匹配模式,但无法捕获文本。
-
(?#…) − 注释(不被视为模式)。叙述模式的详细信息。
如果一个字符、字符集或组需要重复多次,有必要提供正则表达式的模式基数。
-
?:基数为 0… 1 的模式:非必需的(问号)
-
-:基数为 0 或更多,0.. 的模式(星号)
-
+ -:基数为 1 或更多,1.. 的模式(加号)
-
{n}:为 n 次重复匹配一个模式。
-
{a ,b}:为 a 至 b 次重复匹配一个模式。
-
[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 。
输出显示了借方和贷方。这两个值在功能文件中以几乎相似的步骤传递。在步骤执行中,我们使用正则表达式解析了两个步骤。