2015-10-02 71 views
1

我如何写一个正则表达式匹配遵循条件:正则表达式匹配两个词,而不是匹配其他

((iPhone | iPod)的OR(Android和移动AND(NOT GT-P)))

有人能帮助我吗?

编辑:

随着意见的帮助下我已经后续代码:

iphone|ipod|(android(?!.*?gt-p)(?:\s*mobile))? 

它与更多的组相同的正则表达式的android单独不匹配...是正确的?

+0

请发表您的评论。 “你能为我开发这个问题吗”的问题在本网站上并不常见,因为它没有表现出学习的意图。如果你发布了你正在使用的代码 - 即使你认为你是离开的 - 你肯定会得到一个你正在寻找的答案,并可能在这个过程中提高你的正则表达式技能 – wahwahwah

+0

我真的很抱歉,英语有点不好。 –

+1

@RodrigoMonteiroFerreira - 没有问题,也没有必要道歉:)。只要人们在包含他们的代码时通常会在本网站上获得更好的答案。 – wahwahwah

回答

0

这可能是你追求的:

iphone|ipod|android(?!.*?gt-p)(?:\s*mobile)? 

https://regex101.com/r/xT8rD4/1

它将使后面没有gt-pandroidandroid mobile。如果它只允许android mobile,这是一个简单的修复。

+0

真的很感谢你! 我正则表达式无法得到时,只有单词 “机器人” ...... 我改变了: iphone | ipod的|(机器人(* GT-P)(:?!?\ S *移动)) ? 这是正确的吗? –

+0

@RodrigoMonteiroFerreira - 将最终的问号移动到最终的括号中,如下所示:iphone | ipod |(android(?!。*?gt-p)(?:\ s * mobile)?) – lintmouse

0

这里是我提供给你

(^((?!gt-p).)*mobile((?!gt-p).)*android((?!gt-p).)*$)|(^((?!gt-p).)*android((?!gt-p).)*mobile((?!gt-p).)*$)|iphone|ipad 

它对于任何与“的iPad”或“iPhone”或匹配(“机器人”和“移动”以任意顺序,只要它不同时包含“ gt -p“)

https://regex101.com/r/dR5rE4/1