Behave - 正則表示式



讓我們總體瞭解一下正則表示式的語法:

  • 點 (.) - 等價於任何字元。

  • 脫字元 (^) - 等價於字串開頭。(^…)

  • 美元符號 ($) - 等價於字串結尾。 (…$)

  • | - 表示式 x| y,匹配 x 或 y。

  • \ - 跳脫字元。

  • \. - 匹配點。(.)

  • \\ - 匹配反斜槓。(\)

  • […] - 宣告一組字元。([A-Za-z])

  • \d - 匹配數字。([0-9])

  • \D - 匹配非數字。

  • \s - 匹配空白字元。

  • \S - 匹配非空白字元。

  • \w - 匹配字母數字。

  • \W - 匹配非字母數字。

  • (…) - 對正則表示式的模式進行分組。

  • \number - 透過索引匹配先前組的文字。(\1)

  • (? P<name>…) - 匹配模式並將結果儲存在 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

Regular Expressions

輸出顯示借方和貸方。這兩個值已使用特性檔案中幾乎相同的步驟傳遞。在步驟實現中,我們使用正則表示式解析了這兩個步驟。

廣告

© . All rights reserved.