Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php preg_替换正负片和0_Php_Preg Replace - Fatal编程技术网

Php preg_替换正负片和0

Php preg_替换正负片和0,php,preg-replace,Php,Preg Replace,我在这里使用的是preg\u replace: $listing = preg_replace('/[^-?\d|.]/', '', $data); 但只打印负数和正数,不打印0。 我要打印负片、正片和零 我也尝试过,但没有成功: $listing = preg_replace('/[^-?\0-9|.]/', '', $data); 如果要捕获所有数字,请使用带有模式(?)的preg\u match\u all: 另一方面,如果要删除所有正数和负数(以及零),请尝试使用与preg\u re

我在这里使用的是
preg\u replace

$listing = preg_replace('/[^-?\d|.]/', '', $data);
但只打印负数和正数,不打印0。 我要打印负片、正片和零

我也尝试过,但没有成功:

$listing = preg_replace('/[^-?\0-9|.]/', '', $data);
如果要捕获所有数字,请使用带有模式
(?)的
preg\u match\u all

另一方面,如果要删除所有正数和负数(以及零),请尝试使用与
preg\u replace
相同的模式:

$data = "Hello -1.2345 world 0 and 3.1459 goodbye too";
$listing = preg_replace("/(?<!\S)-?\d+(?:\.\d+)?/", "", $data);
echo $listing;

方括号内的任何内容都是字符类。这意味着它定义了单个字符,不受常规正则表达式语法的约束。您有
[^-?\d |]
,它定义了一个字符类,不包括字符
-
、任何数字、管道或句点

我怀疑你要找的是这样的东西:

$listing = preg_replace('/[^0-9.-]/', '', $data);

请向我们展示示例输入和您想要的输出。在数字输入字段中,我输入正数或负数或0,并且我想展示固定的英语和格式。提供的任何答案是否有用?您应该向上投票▲ 如果你有这样做的声誉,那么所有的答案都是有帮助的。然后你应该标记接受✓ 一个最能回答您问题的答案。如果没有一个答案令人满意,请提供反馈意见,或编辑您的问题以澄清问题。我想显示输入表单中的所有正、负和0,并使用捕获所有数字的选项进行更新。
$data = "Hello -1.2345 world 0 and 3.1459 goodbye too";
$listing = preg_replace("/(?<!\S)-?\d+(?:\.\d+)?/", "", $data);
echo $listing;
Hello  world  and  goodbye too
$listing = preg_replace('/[^0-9.-]/', '', $data);