【发布时间】:2022-06-10 17:21:03
【问题描述】:
这个问题和我原来的帖子很相似。
Unable to use conditional regex to test my string in python
再发一个新问题的原因是这里的要求和原来的有点不同。
如果给定的字符串是逐行的,那么原始答案就足够了。但是,那里的答案不能涵盖多行字符串的情况。见下文
| Test case | Test string | Expect value from bool(re.match(...)) |
|---|---|---|
| 1. Naive match | xxxx |
True |
| 2. Bad model name | xxxx |
False |
| 3. Missing model | xxxx |
True |
我尝试了多个正则表达式。但是,它们在任一测试用例 (2) / (3) 上都失败了。
| Tried Regex | Failed on Test |
|---|---|
(board add 0/1)? (?(1) (aaa|bbb)) |
2 |
^(?:(?!board add 0/1).)*$|board add 0/1 (?:aaa|bbb) |
2 |
board add 0/1 (aaa|bbb) |
3 |
(?=board add 0/1 )(?:board add 0/1 (aaa|bbb)) |
3 |
是否可以编写一个正则表达式来通过测试用例?
您可以在以下网址查看它们
https://regex101.com/r/2l2Qd4/1
注意:
- 我只想捕获特定的
board add 0/1而不是board add 0/\d+- 在我的实际使用案例中,接口可能需要不同的模型。这就是为什么我要为
board add 0/1找出一个特定的正则表达式
- 在我的实际使用案例中,接口可能需要不同的模型。这就是为什么我要为
【问题讨论】: