我是新來的正則表達式,並希望匹配的第一次和最後一次出現的術語在PHP中。例如在這一行:php正則表達式匹配第一個和最後一個
「查理,瑪麗,鮑勃,鮑勃,瑪麗,查理,查理,瑪麗,鮑勃,鮑勃,瑪麗,查理」
我想只是獲得第一個和最後「查理「,但不是中間的兩個。我怎麼會匹配一個術語的第一次和最後一次?
感謝
我是新來的正則表達式,並希望匹配的第一次和最後一次出現的術語在PHP中。例如在這一行:php正則表達式匹配第一個和最後一個
「查理,瑪麗,鮑勃,鮑勃,瑪麗,查理,查理,瑪麗,鮑勃,鮑勃,瑪麗,查理」
我想只是獲得第一個和最後「查理「,但不是中間的兩個。我怎麼會匹配一個術語的第一次和最後一次?
感謝
試試這個正則表達式:
^(\w+),.*\1
貪婪*
量詞會照顧的第一個字(\w+
)和該單詞的另一個發生(\1
的比賽之間的串第一組)儘可能大。
您需要將^
和$
符號添加到您的正則表達式中。
^
- 匹配字符串$
的開始 - 匹配字符串你的情況,這將是^charlie
匹配第一樣品和charlie$
去年樣本相匹配的結束。或者如果你想匹配,那麼它將是^charlie|charlie$
。
有關這些符號的更多細節,請參閱Start of String and End of String Anchors。
嘗試爆炸的字符串查找字符的最後一次出現的位置。
$names = "charlie, mary,bob,bob,mary, charlie, charlie, mary,bob,bob,mary,charlie";
$names_array = explode(",", $names);
這樣做後,你有一個名稱的數組。你想要的最後,所以它會在位置0.
$first = $names_array[0];
它變得有點棘手與最後一個。你必須知道你有多少個名字[count()],然後,由於數組從0開始計數,你必須減去一個名字。
$last = $names_array[count($names_array)-1];
我知道這可能不是最好的答案可能的,也不是最有效的,但我認爲這是你真正開始得到編程,通過解決小問題。
祝你好運。
end()也可用於獲取數組中的最後一個元素 – Galen 2009-11-11 22:46:01