价格通过 preg_replace 移除
price remove via preg_replace
我正在尝试使用正则表达式 通过 preg_replace 从字符串中删除价格,但它不起作用。我想从给定的字符串中删除 202,00
<?php
$haystack = "4 x 3XS - € 202,00, L, 2XS, 4 x XS - € 202,00, S";
echo preg_replace('/^(?:0|[1-9]\d*)(?:\,\d{2})?$/','',$haystack);
?>
预期结果:
4 x 3XS、L、2XS、4 x XS、S
任何帮助将不胜感激。
您可以使用正则表达式:
(?<=€\s)(\d*,?\d+)
(?<=€\s)
向后查找 €
符号和空格。
(\d*,?\d+)
捕获数字,可选逗号,数字。
您的代码变为:
<?php
$haystack = "4 x 3XS - € 202,00, L, 2XS, 4 x XS - € 202,00, S";
echo preg_replace('/(?<=€\s)(\d*,?\d+)/','',$haystack);
?>
输出:
4 x 3XS - € L, 2XS, 4 x XS - € S
你可以试试here.
您可以使用
$haystack = "4 x 3XS - € 202,00, L, 2XS, 4 x XS - € 202,00, S";
echo preg_replace('/\s*(?:-\s*)?€\s*\d+(?:,\d+)?/u','',$haystack);
由于模式包含 Unicode 字符,因此在正则表达式中添加 u
修饰符更安全。模式匹配
\s*
- 0+ 个空格
(?:-\s*)?
- -
和 0+ 个空格的可选序列
€
- 欧元符号
\s*
- 0+ 个空格
\d+
- 1+ 位数
(?:,\d+)?
- ,
和 1+ 位的可选序列。
我正在尝试使用正则表达式 通过 preg_replace 从字符串中删除价格,但它不起作用。我想从给定的字符串中删除 202,00
<?php
$haystack = "4 x 3XS - € 202,00, L, 2XS, 4 x XS - € 202,00, S";
echo preg_replace('/^(?:0|[1-9]\d*)(?:\,\d{2})?$/','',$haystack);
?>
预期结果:
4 x 3XS、L、2XS、4 x XS、S
任何帮助将不胜感激。
您可以使用正则表达式:
(?<=€\s)(\d*,?\d+)
(?<=€\s)
向后查找€
符号和空格。(\d*,?\d+)
捕获数字,可选逗号,数字。
您的代码变为:
<?php
$haystack = "4 x 3XS - € 202,00, L, 2XS, 4 x XS - € 202,00, S";
echo preg_replace('/(?<=€\s)(\d*,?\d+)/','',$haystack);
?>
输出:
4 x 3XS - € L, 2XS, 4 x XS - € S
你可以试试here.
您可以使用
$haystack = "4 x 3XS - € 202,00, L, 2XS, 4 x XS - € 202,00, S";
echo preg_replace('/\s*(?:-\s*)?€\s*\d+(?:,\d+)?/u','',$haystack);
由于模式包含 Unicode 字符,因此在正则表达式中添加 u
修饰符更安全。模式匹配
\s*
- 0+ 个空格(?:-\s*)?
--
和 0+ 个空格的可选序列€
- 欧元符号\s*
- 0+ 个空格\d+
- 1+ 位数(?:,\d+)?
-,
和 1+ 位的可选序列。