我試圖查看2個字符串是否匹配。匹配多個字符串
example: 1234.5678.9012.3456 => 5678.1234.3456 = match
這匹配,因爲第二個數字串也在第一個。我做了以下代碼:
<?php
$haystack = '1234.5678.9012.3456';
$needle = '5678.1234.3456';
$regex = '/(?=.*'. str_replace(".",")(?=.*",$needle) .').*$/';
// regex looks like this /(?=.*5678)(?=.*1234)(?=.*3456).*$/
if(preg_match($regex, $haystack)){
echo "A match was found.";
} else {
echo "A match was not found.";
}
?>
這是我的問題,當有重複的數字。
example: 1234.5678.9012.3456 => 5678.5678.3456 = dont match
1234.5678.5678.3456 => 5678.5678.3456 = match
第一個示例不匹配,因爲5678發生兩次,但第一個字符串只有5678一次。在第二個例子中,5678出現兩次,因此匹配第二個字符串。
我的問題:我應該如何改變我的正則表達式,
是不是'strpos'不夠嗎? –
而不是使用正則表達式,使用'split()'將每個字符串拆分成一個字符串數組,然後使用'array_diff()'檢查第二個中的所有內容是否在第一個中。 –