Skip to main content
 首页 » 编程设计

python之正则表达式——如何允许不相邻的替代项

2025年05月04日28JustinYoung

<分区>

在翻译测试应用程序(Python 中)中,我想要一个接受这两个字符串之一的正则表达式:

a = "I want the red book" 
b = "the book which I want is red" 

到目前为止,我正在使用这样的东西:

^(the book which )*I want (is |the )red (book)*$ 

这将接受字符串 a 和字符串 b。但它也将接受不包含两个可选子字符串的 either 的字符串:

sub1 = (the book which ) 
sub2 = (book) 

我如何指示这两个子字符串之一必须存在,即使它们不相邻?

我意识到在这个例子中,通过测试用“or”| 分隔的更长的备选方案,可以很容易地避免这个问题。这是一个问题的简化示例,我正在处理的实际用户输入很难避免该问题。