我有這樣一組字符串:PHP字符串模式替換
Pants [+$50]
Shirts [+$10]
Jeans [+$5]
Jackets [+$100]
我如何刪除「[XXX]在這些線路和只留下項目名稱(不帶空格)?有人告訴我,定義一個正則表達式,不知道這是如何工作的?
我有這樣一組字符串:PHP字符串模式替換
Pants [+$50]
Shirts [+$10]
Jeans [+$5]
Jackets [+$100]
我如何刪除「[XXX]在這些線路和只留下項目名稱(不帶空格)?有人告訴我,定義一個正則表達式,不知道這是如何工作的?
這實際上是一個有點混亂的正則表達式,因爲[
和]
是特殊字符:
$str = 'Pants [+$50]';
$str = rtrim(preg_replace('/\[[^\]]*\]/', '', $str));
// 'Pants'
基本上partern \[[^\]]*\]
手段匹配字面[
後跟0或更多不是]
的字符,後跟]
。 preg_replace中的第二個字符串是它被替換的內容。在這種情況下,因爲我們想刪除它,所以是空字符串。然後我們使用rtrim來修剪任何尾隨的空格。
試試這個:
正則表達式
(?im)[ \t]*\[[^\]\[]+\][ \t]*$
代碼
$result = preg_replace('/^(.+?)[ \t]*\[[^\][]+\][ \t]*$/im', '$1', $subject);
謝謝!完美作品 –
@JamesGu沒問題:) – Paulpro