我有一個字符串,它看起來像這樣:正則表達式得到一個反向引用一個可選的部分
提交1052(主題)由用戶名
刪除該字符串後,有可能是一個冒號隨後是刪除的原因。現在,我需要在PHP的preg_replace中反向引用,以我想要的方式替換它(在我的情況下,我鏈接了用戶名)。我已經嘗試了很多表達式,但我似乎無法獲得我想要的結果。大多數情況下,我的表達式導致鏈接在冒號後繼續(我希望鏈接在冒號之前停止)。
我現在使用的正則表達式如下:
<?php preg_replace("/Submission ([0-9]+) (\(.*\)) was deleted by user (.*)(|: .*)/",'<span style="color:red;">Submission <a href="#">$1</a> $2 was deleted by user <a href="#">$3</a>$4</span>',$string) ?>
在這裏,我基本上認爲(|:*)將檢查空字符串OR(|)冒號後面什麼(但我認爲我錯了)。
爲什麼不分裂的' 「:」'第一? – 2011-07-15 03:36:19
拆分?你有什麼想法?使preg_split? – Nisto
號碼先拆分。一個問題就足夠了。 – 2011-07-15 03:52:52