我需要幫助正則表達式在PHP中...「jolly char」在字符串替換中。這是我現在有:PHP:用字符串替換字符串裏面的歡樂字符
$String = str_replace('<audio type="soundcloud">'.
'[soundcloud url="https://api.soundcloud.com/tracks/',
'<audio type="soundcloud">', $String);
$String = str_replace(' params="color=ff6600&auto_play=false&'.
'show_artwork=true" width="100%" height="166" iframe="true" /]</audio>',
'</audio>', $String);
輸入是:
[soundcloud url="https://api.soundcloud.com/tracks/audio_id" params="color=ff6600&auto_play=false&show_artwork=true" width="100%" height="166" iframe="true" /]
輸出是:
<audio type="soundcloud">audio_id</audio>
那沒關係只有param
保持不變(我想匹配任何param
值)
現在,我試圖用正則表達式來解決它。
這是我想什麼來代替:
[soundcloud url="https://api.soundcloud.com/tracks/audio_id" params="*]
...以有這樣的:
<audio type="soundcloud">audio_id</audio>
(我不需要保存任何參數,時刻)
所以,我不得不刪除PARAMS之間的任何字符=」和]。
有人能幫助我嗎? 我保證我會學習,在下一個愚蠢的問題之前! :)
編輯#1:
我爲我不清楚的問題道歉,我試圖解釋它以另一種方式。 這是我在輸入:
[soundcloud url="https://api.soundcloud.com/tracks/123456789" params="color=ff6600&auto_play=false&show_artwork=true" width="100%" height="166" iframe="true" /]
這正是我所需要的輸出:
<audio type="soundcloud">123456789</audio>
...其中:
- 「123456789」 的變化,且必須保存。
- 我必須刪除「參數」和「]」(包括)之間的所有文本。
我想我需要的最終標誌,所以我必須在正則表達式來寫「PARAMS」的地方......
編輯#2:
這是我最後一次嘗試:
$String = preg_replace('\<audio type="soundcloud"\>\[soundcloud url=\"https\:\/\/api.soundcloud.com\/tracks\/([^"]+).*.\<\/audio\>', '<audio type="soundcloud">\1</audio>', $String);
...它在regex101.com演示中工作,但它不在我的頁面中。
編輯#3:
固定! 當然你的答案是正確的......我在編輯#2中遇到了兩個缺少的斜線麻煩!
這是正確的版本:
$String = preg_replace('/\<audio type=\"soundcloud\"\>\[soundcloud url=\"https\:\/\/api.soundcloud.com\/tracks\/([^"]+).*.\<\/audio\>/', '<audio type="soundcloud">\1</audio>', $String);
非常感謝您的幫助......新年快樂!
好的,我會對此採納你的言論......但請問你可以編輯你的問題,並清楚輸入是什麼,預期輸出是什麼? – Enissay
Mh ...我認爲你是對的! :) 我剛編輯我的問題,對不起。 – user3131164
你檢查我的答案了嗎? 「我必須在正則表達式的某個地方寫」params「,這是什麼意思,你也想捕獲它嗎? – Enissay