Behave 正则表达式
让我们对正则表达式的语法有一个整体的认识 –
- 点 (.) – 相当于任何字符。
 - 
Caret (^) – 相当于字符串的开头。(^…)
 - 
美元符号 () – 相当于字符串的结束。(…)
 - 
| – 表达式x|y,匹配x或y。
 - 
\ – 转移字符。
 - 
\.- 匹配点。(.)
 - 
\ – 匹配反斜杠。(\)
 - 
[…] – 声明一组字符。([A-Za-z])
 - 
\d – 匹配数字。([0-9])
 - 
\D – 匹配非数字。
 - 
\s – 匹配白色空间字符。
 - 
\S – 匹配非空白字符。
 - 
\w – 匹配字母数字。
 - 
\W – 匹配非字母数字。
 - 
(…) – 组建一个正则表达式的模式。
 - 
\number – 按索引匹配前一组的文本。(\1)
 - 
(?P<name>...)– 匹配模式并将其存储在名称参数中。 - 
(?P=name) – 匹配所有被前一组名称匹配的文本。
 - 
(?:…) – 匹配一个模式,但是不能捕获文本。
 - 
(?#…) – 注释(不考虑)。叙述模式的细节。
 
如果一个字符、字符集或组需要重复多次,必须提供正则表达式的模式的cardinality。
- ? :心量为0的模式…1:非强制性(问号)
 - 
- :cardinality 0或以上的模式,0…(星号)
 - 
+ – : 心数为1或更多的模式,1…(加号)
 - 
{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 .

输出显示了借方和贷方。这两个值在特征文件中几乎是以类似的步骤传递的。在执行步骤中,我们用正则表达式解析了这两个步骤。
极客教程