如何编写一个匹配以下条件的正则表达式:
((iphone|ipod) OR (android AND mobile AND (NOT gt-p)))
有人能帮帮我吗?
编辑:在注释的帮助下,我得到了下面的代码:
iphone|ipod|(android(?!.*?gt-p)(?:s*mobile))?
这是相同的正则表达式与更多的组android单独不匹配…对吗?
这可能是你想要的:
iphone|ipod|android(?!.*?gt-p)(?:s*mobile)?
https://regex101.com/r/xT8rD4/1 允许android
和android mobile
后面不跟着gt-p
。如果它应该只允许android mobile
,这是一个容易的修复。
这是我给你的礼物
(^((?!gt-p).)*mobile((?!gt-p).)*android((?!gt-p).)*$)|(^((?!gt-p).)*android((?!gt-p).)*mobile((?!gt-p).)*$)|iphone|ipad
它匹配任何带有"ipad"或"iphone"或("android"one_answers"mobile"以任何顺序,只要不包含"gt-p")
https://regex101.com/r/dR5rE4/1