我有兩種模式,我想在一個字符串中搜索它們。 他們是這樣的:php preg_match與多種模式
$pattern = '/,3$/'
$pattern = '/^1,/';
其實我想找到與
開始字符串或與1,
,3
我的琴絃都是這種格式結尾:
a => 1,2
b => 31,2
c => 4,3
例如和c是匹配!
我該如何使用preg_match來檢查這種模式?
坦克的幫助。
我有兩種模式,我想在一個字符串中搜索它們。 他們是這樣的:php preg_match與多種模式
$pattern = '/,3$/'
$pattern = '/^1,/';
其實我想找到與
開始字符串或與1,
,3
我的琴絃都是這種格式結尾:
a => 1,2
b => 31,2
c => 4,3
例如和c是匹配!
我該如何使用preg_match來檢查這種模式?
坦克的幫助。
嘗試這種方式
preg_match("/^1,|,3$/", $string)
/(^1,)|(,3$)/
應該爲你工作。
萬一有一天你會需要一個非正則表達式的解決方案,你可以使用以下startswith and endswith functions:在IDEONE demo的
function startsWith($haystack, $needle) {
// search backwards starting from haystack length characters from the end
return $needle === "" || strrpos($haystack, $needle, -strlen($haystack)) !== FALSE;
}
function endsWith($haystack, $needle) {
// search forward starting from end minus needle length characters
return $needle === "" || (($temp = strlen($haystack) - strlen($needle)) >= 0 && strpos($haystack, $needle, $temp) !== FALSE);
}
if (startsWith("1,2", "1,") || endsWith("1,2", ",3"))
echo "True1". "\n";
if (startsWith("31,2", "1,") || endsWith("31,2",",3"))
echo "True2". "\n";
if (startsWith("4,3", "1,") || endsWith("4,3",",3"))
echo "True3" . "\n";
輸出:
True1
True3
遍歷它們和與之相匹配。 –
我正在尋找只有一個支票的方式......! –
你需要匹配什麼?你是否需要檢查字符串是以1開頭還是以3結尾,還是需要提取所有不是這樣的內容?如果你只需要匹配,只需使用或運算符'|'。否則,如果你需要匹配其餘的,像這樣的東西會工作:'(?=^1,(。*?)$)|(?=(。*?),3 $)' – briosheje