PHP preg_match排除

时间:2015-04-24 03:35:55

标签: php regex preg-match pcre

好的,这个正则表达式将匹配像2aa,a2,2aaaaa,aaaa2,aaa2aaaa,2222a2222-2222-aaaa这样的字符串...简而言之,序列中混合了字母数字字符:

preg_match("/(?:\d+[a-z]|[a-z]+\d)[a-z\d]*/i")

现在我想排除一些东西,但我被卡住了,这样的事情不起作用

preg_match("/(?!1920x1200|1920x1080)(?:\d+[a-z]|[a-z]+\d)[a-z\d]*/i")

例如字符串aaaaa222aaa1920x1200bbbbb1234556789仍然匹配但不应该匹配,因为它包含1920x1200

感谢任何帮助:)

我正在使用此处的正则表达式来匹配alphanum序列Regex: match only letters WITH numbers

正则表达式测试:https://regex101.com/r/vU9aU9/1

1 个答案:

答案 0 :(得分:3)

您的否定前瞻应该在前面有.*,以便在不允许的文字之前允许0个或更多字符。也可以在正则表达式中使用锚点。

正则表达式应该是:

preg_match('/^.*?1920x1200.*$(*SKIP)(*F)|(?:\d+[a-z]|[a-z]+\d)[a-z\d]*/im')

RegEx Demo