PHP“删除所有之间”特定词

时间:2018-12-13 01:13:38

标签: php regex replace

我有一个物品清单。每个项目都有其描述(每个项目的描述不同,但结构相同)看起来像这样:

[description] => Flat sandal <br />Blush<br />Laminated leather<br />Intertwining straps<br />Low heel: 0.5cm<br />

        Product code: 5276870PS006703 <br /> Made in: Italy<br />Composition: 100%Calfskin

我需要为每个项目描述删除“产品代码:(随机数字和字母)”部分。我考虑过使用string_replace,但是它只能替换单词“产品代码”,而不是数字和字母,因为它们在每个项目上都是不同的。我也尝试过:

$description = delete_all_between("Product code:", "<br />", $description);

但是没有用。 不知道我还能尝试什么。

谢谢

3 个答案:

答案 0 :(得分:1)

使用preg_replace()函数

<br />

正则表达式

$result = preg_replace('/product\s+code[^>]*\>/is', '', $input);

标志

look for    "product"
followed by \s+ (one or more spaces, tabs,...)
followed by "code"
followed by [^>]* (an unspecified amount of charakters that are not ">")
followed by \> an ">" (\ is es for escaping)

答案 1 :(得分:0)

您可以修改以下代码:

$description = 'Flat sandal <br />Blush<br />Laminated leather<br />Intertwining straps<br />Low heel: 0.5cm<br />

        Product code: 5276870PS006703 <br /> Made in: Italy<br />Composition: 100%Calfskin';
$pattern = '/Product code:\s*\w*\s*<br />/';
$replacement = '';
echo preg_replace($pattern, $replacement, $description);

最终输出:

Flat sandal 
Blush
Laminated leather
Intertwining straps
Low heel: 0.5cm
Made in: Italy
Composition: 100%Calfskin

说明:

preg_replace是一个php函数,它将在输入字符串中替换由正则表达式定义的特定模式

使用Product code:\s*\w*\s*<br /> demo的正则表达式将匹配以Product code:开头的字符串,然后是一些空格字符,再加上一些单词字符,再加上更多的空格字符,然后以html {{1 }}(Regex quicksheet)。

答案 2 :(得分:0)

您需要查看preg_replace,它使用了正则表达式,并赋予您强大的能力来瞄准您以后的目标。

类似

$string = 'Flat sandal <br />Blush<br />Laminated     leather<br/>Intertwining straps<br />Low heel: 0.5cm<br />Product code: 5276870PS006703 <br /> Made in: Italy<br />Composition:';
$pattern = '/Product code: (w+) /i';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);

希望有帮助