我有2個字符串:如何用正則表達式獲得這個substr?
Ass. Présentation Chiara D29,5cm
Ass. Présentation Chiara Anthracite D29,5cm
我需要第二個字符串中只保留字「無煙煤」,因爲這個詞是不是第一個字符串中
是否有可能做這樣的事情?
我有2個字符串:如何用正則表達式獲得這個substr?
Ass. Présentation Chiara D29,5cm
Ass. Présentation Chiara Anthracite D29,5cm
我需要第二個字符串中只保留字「無煙煤」,因爲這個詞是不是第一個字符串中
是否有可能做這樣的事情?
試試這個:
<?php
$keywordString = "Ass. Présentation Chiara D29,5cm";
$keywordArray = explode(" ", $keywordString);
$string = "Ass. Présentation Chiara Anthracite D29,5cm";
$stringArray = explode(" ", $string);
foreach ($keywordArray as $keyword)
$stringArray = preg_grep("/{$keyword}/i", $stringArray, PREG_GREP_INVERT);
echo "<pre>";
print_r($stringArray);
echo "</pre>";
exit;
?>
我的用法似乎沒問題,謝謝! – bahamut100
您可以將字符串拆分爲一個由空格分隔的數組,然後從具有最多項目數的項目中刪除最少數量的項目的數組,並且您留下的所有項目都將是您需要的單詞。
編輯:
$string1 = "Ass. Présentation Chiara D29,5cm"
$array1 = explode(" ",$string1);
$string2 = "Ass. Présentation Chiara Anthracite D29,5cm"
$array2 = explode(" ",$string2);
$difference = array_diff($array2,$array1);
在這種情況下,我認爲你會做一些邏輯,也檢測到最大的數組,然後減去最小的,除非array_diff這樣做,一直以來,因爲我觸摸PHP :) – FRoZeN
也許不是最好的方式去了解它,但嘗試使用explode
和array_diff
像這樣:
$arr1 = explode(' ', $str1);
$arr2 = explode(' ', $str2);
$diff = array_diff($arr2, $arr1);
$diff
將是單詞的數組目前在$str2
但不在$str1
。
$words1 = explode(" ",$str1);
$words2 = explode(" ",$str2);
print_r(array_diff($words1,words2);
這可能工作,如果'$ str1'是包含'Anthracite'和'$ str2'的字符串是沒有'Anthracite'的字符串。 –
不能與一個正則表達式並沒有額外的語句。 – ArjunShankar
是否保證其他單詞在兩個字符串中的順序相同? – ArjunShankar
[突出顯示PHP中兩個字符串之間的區別](http://stackoverflow.com/questions/321294/highlight-the-difference-between-two-strings-in-php) –