我想使用正则表达式来创建一个匹配三个词的词干的模式,无论它们的顺序如何

时间:2016-11-29 19:57:58

标签: regex

我正在使用Blackboard创建测试。其中一个问题的答案是:TIF, PDF, or Native。 Blackboard能够使用模式匹配来验证填空问题的答案。

什么正则表达式会接受包含所有这些单词的答案,无论顺序如何,如果学生在答案中加上“和”,他们会忽略?

可能的正确答案:

TIF PDF Native  
Tifs, Pdfs, and natives  
native and pdf and tif  
pdf, tifs  natives
tifs with text and metadata, PDF, Native

我需要所有三个单词,但我可以忽略额外的单词。

我会质量控制答案,所以如果有人提交:tifs text pdf native excel image hard drive server,我会手动抓住它。

1 个答案:

答案 0 :(得分:1)

使用每个单词的前瞻:

^(?i)(?=.*\btifs?\b)(?=.*\bpdfs?\b)(?=.*\bnatives?\b).*

请参阅live demo

因为展望未消费输入,他们的顺序和输入中的术语顺序是灵活的。

每个术语都包含在\b(单词边界)中,以确保它们是"单词",例如" hard pdf native"不会匹配。

s?表示可选的" s"在单词的最后(允许复数)

(?i)表示"不区分大小写"。