我需要一個php的正則表達式,輸出<!--:en-->
和<!--:-->
之間的所有內容。 因此對於<!--:en-->STRING<!--:-->
它只會輸出STRING
。需要2組字符之間的php正則表達式
編輯:噢,下面<!--:-->
nedds是<!--:en-->
後的第一個becouse有更多的文字..
我需要一個php的正則表達式,輸出<!--:en-->
和<!--:-->
之間的所有內容。 因此對於<!--:en-->STRING<!--:-->
它只會輸出STRING
。需要2組字符之間的php正則表達式
編輯:噢,下面<!--:-->
nedds是<!--:en-->
後的第一個becouse有更多的文字..
你想要的其實並不是太複雜:
/<!--:en-->(.*?)<!--:-->/gi
你的比賽將在捕獲組1
說明:
的.*?
是一個懶惰的量詞。基本上,它意味着「保持匹配,直到找到仍然適合此模式的最短字符串」。這將導致匹配在第一個實例<!--:-->
處停止,而不是直到文檔中的最後一個<!--:-->
。
如果我正確記得我的PHP,那麼用法就像preg_match("/<!--:en-->(.*?)<!--:-->/gi", $input)
。
如果你只是輸入
$input = '<!--:en-->STRING<!--:-->';
您可以
嘗試$output = strip_tags($input);
是啊,那不會工作,我得到< !--:en-- >和< !--:de-- >,所以它會將它們全部剝離... – Milivoj
嘗試:
^< !--:en-- >(.*)< !--:-- >$
我不認爲任何其他角色需要轉義。
試圖,但沒有結束分隔符'^'錯誤 – Milivoj
OP沒有指定該字符串是整行;實際上他特別指出在投入中有不止一種這樣的模式。你的模式在至少三種方式上是錯誤的:要求整個字符串匹配,需要標籤內的空格,並使用貪婪的'。*'作爲一個匹配消耗到最後一個結束標記的所有路徑,即使沒有'^$'。 –
到目前爲止,您嘗試過哪些方法?您卡在哪裏?向我們展示您的代碼 - 我們將指出需要更改的內容。 –
我沒有得到任何代碼,因爲我吸吮正則表達式:) – Milivoj
要添加代碼,只需選擇文本並單擊圖標與父母或ctrl + k在Windows上,我已經解決了這個問題 –