我在正則表達式上相當薄弱,這給我一個頭痛,試圖弄清楚。我只是試圖從字符串中提取時間並修改時間的文本。我得到的字符串有以下幾種形式:PHP preg_replace多個替換
"Some text I don't care about | 2.3 seconds ago"
"Some text I don't care about | 5.2 minutes ago"
"Some text I don't care about | 7.0 hours ago"
"Some text I don't care about | 1.9 days ago"
我想換成上述字符串它們分別是在形式:
"2.3 secs"
"5.2 mins"
"7.0 hrs"
"1.9 days"
我知道正則表達式替換的基礎知識,但刪除多個我想要的文本前後的東西,而用「hrs」替換「小時」等,超出了我的正則表達式技能水平。
任何幫助,將不勝感激。
感謝。
編輯:
搞亂我使用多個不同的功能來解決好了後。我不完全喜歡它,但它有效。如果可能,我寧願單個preg_replace解決方案。這是我目前醜解決方案:
$testString = "This is text I don't care about | 7.3 seconds ago";
$testString = array_shift(array_reverse(explode('|', $testString)));
$pattern = array('/seconds/', '/minutes/', '/hours/', '/ago/');
$replace = array('secs', 'mins', 'hrs', '');
$testString = trim(preg_replace($pattern, $replace, $testString));
輸出爲:7.3 secs
你想爲多個字符串一個接一個,或一個包含多個句單一的字符串進行替換? – RomanPerekhrest
字符串將被逐個處理 – Wallboy
可以使用一個preg_replace調用和一個正則表達式。 –