Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP多字符串正则表达式在一个;如果;条件_Php_Regex - Fatal编程技术网

PHP多字符串正则表达式在一个;如果;条件

PHP多字符串正则表达式在一个;如果;条件,php,regex,Php,Regex,我用PHP写了一个正则表达式。它测试字符串是否包含以下字符串之一:“…aft…”或“…fire…”。代码是有效的 if( !( preg_match("/aft/i", $string1) || preg_match("/fire/i", $string1) ){ $flag = false; } 我的问题是:如果只使用一个preg_match()而不是我现在使用的2个preg_match(),是否可以更简洁地重新编写这个if条件?您需要的可能

我用PHP写了一个正则表达式。它测试字符串是否包含以下字符串之一:“…aft…”或“…fire…”。代码是有效的

if( !( preg_match("/aft/i", $string1) || preg_match("/fire/i", $string1) ){
    $flag = false; 
}

我的问题是:如果只使用一个preg_match()而不是我现在使用的2个preg_match(),是否可以更简洁地重新编写这个if条件?

您需要的可能是管道操作符

...preg_match("/(aft|fire)/i",$_GET['ua']) ...

顺便说一句,我发现这个工具在构建正则表达式时非常有用,它还提供了一些示例:

是使用管道
|
,这是一个逻辑OR。但是,如果这些子字符串在url中的特定位置,您最终可以使用
parse\uURL
执行某些操作。(作为旁白:您的问题可能会被否决、关闭和删除。)因为您正在查找文字字符串,您也可以使用
strpos
。我进行了编辑,不需要解析url,它只是一个字符串。如果我的问题被删除了,不要担心,因为我不在乎。不管怎样,你都不知道哪一个匹配,不管是两者都匹配还是只有一个匹配。无论哪种方式,您都会获得较少的信息。使用捕获组执行此任务没有任何好处。请帮助SO通过标记/投票关闭重复问题而不是回答来减少其新的冗余内容。