我遇到了正則表達式的麻煩,我的目標是讓字符串的末尾放在if語句中。因此,例如我有一個字符串2017_annualoff
我正在使用我的preg_match在if else語句中取樣annualoff
就像這樣。適當的preg_match獲取字符串的結尾
else if (preg_match("/^(.*?)\annualoff/", $request->filters['types.created_at'])) {
return "Hello annual off";
// $trimmedFilter = str_replace('_annualoff', '', $request->filters['types.created_at']);
// $splitYear = $trimmedFilter;
// $filtered_table = $filtered_table->where('methods.created_at', 'LIKE', '%' . '2016-11-16' . '%');
}
但是,在我的其他代碼塊通過時,它不會經過該塊,這裏是if語句的其餘部分。
if(preg_match("/^(.*?)\monthlyoff/", $request->filters['types.created_at'])) {
} else if (preg_match("/^(.*?)\quarteroff/", $request->filters['types.created_at'])) {
} else if (preg_match("/^(.*?)\annualoff/", $request->filters['types.created_at'])) {
return "Hello annual off";
}
我試着讓annualoff preg匹配一些簡單的東西,例如「99」,然後是樣本字符串2017_99,並且它通過了。所以我認爲我的正則表達式肯定有問題。 你能解決這個問題嗎?或者爲什麼它不會通過?這是什麼適當的正則表達式?同時,當我使用不同的字符串時,它會通過。
(a)是否應該是字符串的_end_?如果是這樣,你應該在表達式的末尾加上'$'。 (b)爲什麼在'a'之前有一個反斜槓'\'? – Manngo
你在用反斜槓做什麼? '\ a','\ q','\ m'? – chris85
是的,它總是應該是字符串的結尾。我很抱歉,我在互聯網上找到了正則表達式,並聲稱「讀取字符串的末尾」以對其進行抽樣。我認爲反斜槓什麼都不做,只是將我正在取樣的單詞分開,至少我認爲這就是它所做的。 – user827391012