繁体   English   中英

PHP字符串模式替换

[英]PHP String Pattern Replace

我有一组这样的字符串:

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM