Behave - 正则表达式
让我们对正则表达式的语法有一个整体的认识 −
点号 (.) − 相当于任何字符。
插入符 (^) − 相当于字符串的开头。 (^…)
美元符号 ($) − 相当于字符串的结尾。 (…$)
| − 表达式 x| y,匹配 x 或 y。
\ − 转义字符。
\. &减; 匹配点。 (.)
\\ − 匹配反斜杠。 (\)
[…] − 声明一组字符。 ([A-Za-z])
\d − 匹配数字。 ([0-9])
\D − 匹配非数字。
\s − 匹配空白字符。
\S − 匹配非空白字符。
\w − 匹配字母数字。
\W − 匹配非字母数字。
(…) − 对正则表达式模式进行分组。
\number − 按索引匹配上一组的文本。 (\1)
(? P<name>…) − 匹配模式并将其存储在名称参数中。
(?P=name) − 匹配与前一个组名匹配的所有文本。
(?:…) − 匹配模式,但无法捕获文本。
(?#...) − 注释(未考虑)。 叙述模式的细节。
如果一个字符、字符集或组需要重复多次,则必须提供正则表达式模式的基数。
? : 具有基数 0...1 的模式:不是强制性的(问号)
- :基数为 0 或更多的模式,0..(星号)
+ - :基数为 1 或更多的模式,1..(加)
{n}:匹配 n 次重复的模式。
{a ,b}:匹配从 a 到 b 的模式重复。
[A-Za-z]+ :匹配多个字母字符。
特征文件中的步骤可能具有几乎相似的短语。 Behave 具有解析能力。 方法 use_step_parser 用于此,我们必须将解析器类型作为参数传递给该方法。
对于正则表达式匹配器,我们必须传递参数re。 参数 (? P<name>...) 用于从步骤定义中获取参数。
特征文件(步骤差不多)
类似步骤的特征文件如下 −
Feature − Payment Process Scenario − Check Debit transactions Given user is on "debit" screen Scenario − Check Credit transactions Given user is on "credit" screen
对应步骤实现文件
步骤实现文件如下 −
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)
输出
运行特征文件得到的输出结果如下。 在这里,我们使用了命令 behave --no-capture -f plain。
输出显示debit(借方)和credit(贷方)。 这两个值已通过功能文件中几乎相似的步骤传递。 在步骤实现中,我们已经用正则表达式解析了这两个步骤。