任何人,谁可以给劝连续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,
目前我可以匹配,如果它的一条线。
任何人,谁可以给劝连续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,
目前我可以匹配,如果它的一条线。
它可能有三种方式。
与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>";
}
}
}
谢谢,第一种方法将完美工作,因为我想匹配3条确切的3条线。 – sawe
请标记为已接受的答案,以便其他人可以从中获得帮助。 –
你想确保下面的文本存在于上面的字符串中吗? –
'file()'将值放入一个数组,然后'用逗号分解(')'搜索字符串,然后循环搜索数组以找到匹配 – rtfm
“linux很有趣,Windows很有趣,Ubuntu是ubuntu”当然是三条线。但是,它是单个字符串。不是吗?只需使用字符串比较功能。 –