[英]Starts and Ends with PHP Regex
好的,我有以下代碼將大字符串的某些部分替換為某些內容
$string = 'this <task>post</task> was a <post>post item</post>
before but now this is now a <task>task item</task>
and will become like <task>this one</task>';
$pattern = '^<task>*</task>$';
$datainmiddle = preg_replace($pattern, $replacement, $string);
$replacement = strlen(datainmid);
//I have no idea what to do next...(ノД`)・゜・。
現在我想在這里做的事情如下
<task>
開頭和</task>
結束的字符串中的每個子字符串 <task>
和</task>
中間的所有數據 <task>
開頭並以</task>
結尾的子字符串替換為中間的字符串長度。 輸出必須是這樣的
這個4以前是9,但現在現在是9,將變成8
如果您發現它令人困惑。 請告訴我
好吧,很簡單:
preg_replace('#<task>(.*?)</task>#e', "strlen('\\1')", $str);
正則表達式使用(.*?)
來啟動一種內存模式,稍后我將其用於傳遞給strlen()
。
我正在使用.*?
表示非貪婪匹配(否則,它匹配第一個<task>
和最后一個</task>
。
e
修飾符用於評估第二個參數preg_replace
; 這樣就可以在對表達式進行整體評估以返回字符串長度之前在表達式中寫入'\\\\1'
。
希望解釋對理解解決方案有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.