下面我们全面来了解正则表达式的语法 -
.
- 等效于任何字符。^
- 相当于字符串的开头。(^…)- 美元符号([数学处理错误])
|
− 表达式 x| y,匹配 x 或 y。\
- 转义字符。\.
− 匹配点。(.)\\
- 匹配反斜杠。()[…]
- 声明一组字符。([A-Z-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)
运行特征文件后得到的输出如下。在这里,我们使用了命令行: --no-capture -f plain
。
输出显示借方和贷方。这两个值已通过特征文件中几乎相似的步骤传递。在步骤实现中,已经用正则表达式解析了这两个步骤。