簡體   English   中英

如何在PHP中使用正則表達式刪除特定字符之間的字符串?

[英]How to remove a string between the specific characters using regular expression in PHP?

我有下面的字符串,

$string = "test coontevt [gallery include=\"12,24\"] first [gallery include=\"12,24\"] second";

我需要刪除該字符串開頭[gallery先ocuurance的是]

我已經用過了

$string12 = preg_replace('/[gallery.+?)+(/])/i', '', $string);

但我只得到空字符串。

最后我想要上述字符串的結果是,

$string ="test coontevt first second".

如何使用正則表達式執行此操作?

請幫我嗎?

字符[是正則表達式元字符。 要匹配文字[您需要對其進行轉義。

$string12 = preg_replace('/\[gallery.+?\]/i', '', $string);

要么

$string12 = preg_replace('/\[gallery[^\]]+\]/i', '', $string);

您需要轉義方括號

$string12 = preg_replace('/\[gallery.+?\]/i', '', $string);

圓括號是不必要的,因此我刪除了它們,也刪除了這些括號之間的量詞以及最后一個方括號之前的正斜杠。

為了避免結果中出現多個空格,我還要匹配周圍的空格並替換為1個空格。

\\s+\\[gallery.+?\\]\\s+並替換為一個空格

$string12 = preg_replace('/\s+\[gallery.+?\]\s+/i', ' ', $string);

在Regexr上在線查看此表達式

像這樣嘗試:

$string12 = preg_replace('/\[gallery[^\]]+\]/i', '', $string);

[^\\]]+表示可以有一個或多個不是]字符。 而且,如果您不想使用反向引用,則不需要任何()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM