2016-01-13 56 views
0

我想产生一个正则表达式,可以让我做到以下几点:PHP的正则表达式查找字符串项的值

我有一个包含几个方面的字符串,所有这一切都是字母,也许一些特殊的字符:+.#

它们之间用逗号隔开。

这是一种怎样的样子:

$string = 'Term1,Term2,Term3,Term4'; ...等...(约60项)

我希望能够得到每学期并将其分配给一个变量,因为我要使用第二正则表达式的长字符串,例如:

$secondString = 'This string may contain some terms, such as Term1, or maybe Term2'; 

所以几乎我想要能够检查是否有第一个字符串中的条款都存在第二个字符串中。

我看了下面的教程:

https://www.youtube.com/watch?v=EkluES9Rvak

但我只是似乎无法拿出一些东西。

非常感谢您的帮助!

干杯!

回答

1

您可以分割字符串成令牌后使用array_intersect function

$string = 'Term1,Term2,Term3,Term4'; 
$secondString = 'This string may contain some terms, such as Term1, or maybe Term2'; 

$arr1 = explode(',', $string); 
$arr2 = preg_split('/[,\h]+/', $secondString); 

$arr = array_intersect(array_map('strtolower', $arr1), array_map('strtolower', $arr2)); 
print_r($arr); 

输出:

Array 
(
    [0] => Term1 
    [1] => Term2 
) 
+0

这是区分大小写?我希望它是不区分大小写的(?i) – idelara

+0

好的检查更新的答案 – anubhava

+1

非常感谢!它完成这项工作! – idelara

相关问题