我有一个物品清单。每个项目都有其描述(每个项目的描述不同,但结构相同)看起来像这样:
[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);
但是没有用。 不知道我还能尝试什么。
谢谢
答案 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);
希望有帮助