我有一个带有 3 个 block 参数(单词、数字、斜杠)的字符串,我需要将其分开并仅打印最后一个 block 参数。我这样做:
<?php
$howmuch="17шт / 119ml / 255грн";
echo preg_replace("/(\\d\\w\\ / )(\\d\\w\\ / )(\\d\\w\\ / )$/i", "$3", $howmuch);
?>
我只需要打印 255грн,但我的脚本什么也不做。请帮我解决问题。谢谢大家。
最佳答案
如果格式是固定的,您可以使用不使用任何正则表达式来获取值
explode(" / ", $howmuch)[2]
请参阅PHP demo 。它将用 space-/-space
分割字符串,并获得结果数组的第三个元素。
或者,您可以使用 preg_match
操作提取一个带有 грн
的数字(这种方法可以让您找到匹配项,无论如何比赛之前或之后有很多/
):
$howmuch="17шт / 119ml / 255грн";
if (preg_match("/\d+\s*грн/ui", $howmuch, $results)) {
echo $results[0];
}
请参阅PHP demo .
如果值可以包含小数部分,则可以使用 "/\d+(?:[.,]\d+)?\s*грн/ui"
其中 (? :[.,]\d+)?
匹配 .
或 ,
后跟 1 个以上数字的可选序列。
关于php - 剪切(裁剪)字符串中的一些文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52470950/