我用于检测带有许多单词的字符串的PCRE REGEX模式不起作用



我只想检测以下字符串:

pets ok
pets yes
pets allowed
pets accepted
pets is/are allowed
pets is/are accepted
pets will be considered
pets will considered
pets is/are considered
pet friendly

和相反的相同事物,例如:

ok pets
yes pets
...

(与上述相同,与"宠物"/"宠物"从结束开始)

我无法弄清楚。

请,如果您可以帮助我改善我当前的模式,显然是行不通的:

/\b(pet(?:s)?\s[negotiable|ok|o\.k|friendly|accept|allow|possible]+|[ok|yes|accept]+\spet(?:s)?|pet(?:s)?\s[will|will\sbe]+\s[consider|allow|accept|possible]+)\b/i"

尝试

"/\bpets?\s[ok|is\/are allowed]/i" 

和Silimar

这是一个超级图片的正则正则是您列出的示例(并且未完成清单):

b(?:(?:pets (?:ok|yes|(?:(?:is/are )?(?:allowed|accepted))|(?:(?:will(?: be)?|is/are) considered)))|(?:(?:ok|yes|(?:(?:is/are )?(?:allowed|accepted))|(?:(?:will(?: be)?|is/are) considered))) pets|pet friendly|friendly pet)b​

在Rubular

上看到它

我基本上将其分为"允许/接受"one_answers"考虑"的变体的变化。然后我只是以相反的方式复制它。

最可读的形式仍然是:

b(?:pets ok|pets yes|pets allowed|pets accepted|pets is/are allowed|pets is/are accepted|pets will be considered|pets will considered|pets is/are considered|pet friendly|ok pets|yes pets|allowed pets|is/are allowed pets|accepted pets|is/are accepted pets|will be considered pets|will considered pets|is/are considered pets|friendly pet)b

另外,在您的正则表达式中,您似乎正在使用字符类([ ])进行分离单词,而实际上您应该使用非捕捉组((?: )

相关内容

最新更新