我有这样一组字符串: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