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)str_replace()
注释上的投票数。这不是一个需要正则表达式的问题,所以正则表达式是一个不必要的非最优解决方案。这似乎根本不是一个需要正则表达式解决的问题。谢谢你。正则表达式帮了我很多忙