2016-01-13 58 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

相關問題