【发布时间】:2017-06-07 23:09:29
【问题描述】:
我有以下格式的文本
Scenario: Lorem ipsum dolor sit amet, consectetur adipiscing elit
Given sed do eiusmod tempor
When Ut enim ad minim veniam, quis nostrud exercitation
Then In voluptate velit esse cillum dolore eu fugiat nulla
@Sprint4 @543fsdf
Scenario: Lorem ipsum dolor sit amet, consectetur adipiscing elit
Given sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
When Ut enim ad minim veniam, quis nostrud exercitation
Then In voluptate velit esse cillum dolore eu fugiat nulla
@Sprint1 @345277
Scenario: Sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt returned correct singular message
Given sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
And Duis aute irure dolor in reprehenderit
When Ut enim ad minim veniam, quis nostrud
Then quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur
@Sprint1 @xyz1234
Scenario: At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis
Given sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
And Duis aute irure dolor in reprehenderit
When Ut enim ad minim veniam, quis nostrud
Then quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur
我想根据其中的一行文本选择整个场景。
例如。
基于'Given sed do eiusmod tempor incididunt ut labore et dolore magna aliqua'这一行
我想要第二种情况
Scenario: Lorem ipsum dolor sit amet, consectetur adipiscing elit
Given sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
When Ut enim ad minim veniam, quis nostrud exercitation
Then In voluptate velit esse cillum dolore eu fugiat nulla
,也是第三个和第四个场景——但不是第一个
我在努力
Scenario[\s\S]*?Given sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua[\s\S]*?(?=(@|Scenario))
但这给了我第一个和第二个场景,第三个但没有第四个场景。我也尝试了其他模式,但并不成功。帮忙?
【问题讨论】:
-
按场景(按块)拆分文本并过滤块。
-
所以你想要以'Given'、'When'和'Then'开头的三行?或者你只是不想要第一个场景(没有@)
-
并非如此。我希望一切都从 Scenario 开始:直到该块结束。
标签: regex negative-lookahead capture-group