Php 从字符串中删除加号(+;)
我正在尝试使用Php 从字符串中删除加号(+;),php,regex,Php,Regex,我正在尝试使用preg_replace()从字符串中删除加号(+)。我曾经 $variation = preg_replace('/[^\p{L}\p{N}\s]/u', '', $variation); 但是这也删除了句点(),我需要它在字符串中。有没有办法去掉加号?虽然这个问题的原始答案确实达到了预期的效果,但这并不是完成这个简单任务的最有效的方法。如上所述,在这种情况下,首选使用str_replace() $variation = str_replace("+", "", $variat
preg_replace()
从字符串中删除加号(+
)。我曾经
$variation = preg_replace('/[^\p{L}\p{N}\s]/u', '', $variation);
但是这也删除了句点(
),我需要它在字符串中。有没有办法去掉加号?虽然这个问题的原始答案确实达到了预期的效果,但这并不是完成这个简单任务的最有效的方法。如上所述,在这种情况下,首选使用str_replace()
$variation = str_replace("+", "", $variation);
原始答案: 此操作仅用于删除加号:
$variation = preg_replace(/[+]/, "", $variation);
您可以在这里看到它的工作原理:(确保您选择了preg_replace功能)对于
+$7.99
可能:
$string = ltrim($string, '+$');
或者,如果出于任何原因,它们位于两端使用
trim()
您确实不需要正则表达式,给定$value='+$2.47'代码>:
$value = (float) strtr($value, [
'$' => '',
'+' => '',
]);
var_dump($value); // double(2.47)
注意(浮动)
强制转换;我认为这可能是有利的,因为您正在处理数值
或者,如果您下定决心要使用preg\u replace
,则匹配一个否定类:
$value = (float) preg_replace('/[^0-9\.]/', '', $value);
var_dump($value); // double(2.47)
这将替换任何非数字的非点(
)字符。preg\u replace(“/\+/”,“,$string)代码>str_替换('+','$string)这些字符串不会恰好是数字,对吗?“+2.87”@abracadver是的,它们只是数字。另外,我需要删除美元符号($)@OP。请注意上面简单的str_replace()
注释上的投票数。这不是一个需要正则表达式的问题,所以正则表达式是一个不必要的非最优解决方案。这似乎根本不是一个需要正则表达式解决的问题。谢谢你。正则表达式帮了我很多忙