2017-06-13 28 views
0

任何人,谁可以给劝连续3行,我在找一个PHP函数或方法上的一个文件,例如匹配连续3线是否有一个PHP函数来匹配文件

php is fun, 
linux is interesting, 
Windows is fun, 
Ubuntu is ubuntu, 
Perl is fun, 

哪有我从以上文字匹配下面?

linux is interesting, 
Windows is fun, 
Ubuntu is ubuntu, 

目前我可以匹配,如果它的一条线。

+0

你想确保下面的文本存在于上面的字符串中吗? –

+0

'file()'将值放入一个数组,然后'用逗号分解(')'搜索字符串,然后循环搜索数组以找到匹配 – rtfm

+0

“linux很有趣,Windows很有趣,Ubuntu是ubuntu”当然是三条线。但是,它是单个字符串。不是吗?只需使用字符串比较功能。 –

回答

0

它可能有三种方式。

preg_match_all()

$str = "php is fun, linux is interesting, Windows is fun, Ubuntu is ubuntu, Perl is fun,"; 
$res = preg_match_all("/(linux is interesting|Windows is fun|Ubuntu is ubuntu)/", $str); 
if ($res) 
    echo "Text is founded in string"; 

使用regex首先如果你只需要知道是否有任何的话存在,如上使用preg_match。如果您需要匹配任何的话所有的出现次数,使用preg_match_all|管迹象表明or

其次通过利用指示stripos()如果一个字符串包含特定的词或不和,如果包含返回起点单词的位置。

print_r(stripos($str, "Windows is fun")) 

Thridly如果你是用分离分隔,您的字符串的句子那么就可以通过使用explode()字符串转换成阵列可能再由一个与另一个阵列匹配一个。

$str = "php is fun, linux is interesting, Windows is fun, Ubuntu is ubuntu, Perl is fun,"; 
$exp = explode(",", $str); 

$match = array("linux is interesting", "Windows is fun", "Ubuntu is ubuntu"); 

foreach ($exp as $key => $value) { 
    foreach ($match as $key_match => $value_match) { 
     if ($value === $value_match) { 
      echo "String match founded <br>"; 
     } 
    } 
} 
+0

谢谢,第一种方法将完美工作,因为我想匹配3条确切的3条线。 – sawe

+0

请标记为已接受的答案,以便其他人可以从中获得帮助。 –

相关问题