Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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 trim()在未指定时删除_Php - Fatal编程技术网

PHP trim()在未指定时删除

PHP trim()在未指定时删除,php,Php,使用PHP7.2.8 关于PHP中的trim函数,我有一个奇怪的情况。为了举例说明,让我们假设我这样说: echo trim("sacas",",\s"); 我明白了 aca 结果,。此外,如果我打了一个稍微不同的电话: echo trim(" sacas",",\s") 我明白了 如果很难看到,那么前面的空格仍然存在 正如我所能说的那样,所发生的事情是,删除与指定集合匹配的所有前导字符和尾随字符的trim正在删除所有的s字符,而忽略空白。但是/s应该表示空白字符,而与s完全不匹配 知道

使用PHP7.2.8

关于PHP中的trim函数,我有一个奇怪的情况。为了举例说明,让我们假设我这样说:

echo trim("sacas",",\s");
我明白了

aca
结果,。此外,如果我打了一个稍微不同的电话:

echo trim("  sacas",",\s")
我明白了

如果很难看到,那么前面的空格仍然存在

正如我所能说的那样,所发生的事情是,删除与指定集合匹配的所有前导字符和尾随字符的trim正在删除所有的s字符,而忽略空白。但是/s应该表示空白字符,而与s完全不匹配

知道为什么会这样吗?如果是这样,我如何在保留s字符的同时删除空格


值得注意的是,我的问题需要同时删除逗号和空格,因此我不能简单地使用不带额外参数的trim,这就不需要s了

trim接受一个剥离字符列表,而不是一个组或正则表达式

所以写sacas意味着,s,a,c,a和s

我想你在寻找:

编辑:根据Peter的评论,可能是这样的:

preg_replace('/^(,|\s)+|(,|\s)+$/', '', 'sacas')
trim接受剥离字符列表,而不是组或正则表达式

所以写sacas意味着,s,a,c,a和s

我想你在寻找:

编辑:根据Peter的评论,可能是这样的:

preg_replace('/^(,|\s)+|(,|\s)+$/', '', 'sacas')

要删除前导和尾随逗号和空格,需要使用,:


如果需要包含更多类型的空白选项卡、换行符、换行符,则需要将它们包含在字符串中,例如,\t\n\r\0\x0B

要删除前导和尾随逗号和空格,需要使用,:


如果需要包含更多类型的空白制表符、换行符、换行符,则需要将它们包含在字符串中,例如,\t\n\r\0\x0B

必须指定要剥离的所有字符,也就是说,不能使用正则表达式。因此,要修剪空格和逗号,您需要:

echo trim("  sacas", ", \t\n\r\0\x0B");

必须指定要去除的所有字符,即不能使用正则表达式。因此,要修剪空格和逗号,您需要:

echo trim("  sacas", ", \t\n\r\0\x0B");

值得注意的是,我的问题要求我删掉逗号和空格,所以我不能简单地在没有额外参数的情况下使用trim,这就不需要使用s了

这只会删除前导和尾随的空格和逗号

echo trim("   sacas, ",", ");
返回

sacas

值得注意的是,我的问题要求我删掉逗号和空格,所以我不能简单地在没有额外参数的情况下使用trim,这就不需要使用s了

这只会删除前导和尾随的空格和逗号

echo trim("   sacas, ",", ");
返回

sacas

在第二个示例中,您使用了正斜杠,而不是反斜杠:\。因此它必须是:\s。第二个参数不是正则表达式\s不是。因此,它会在字符串的开头和结尾剪切每个\和s。这只是我在写问题时的一个打字错误。修剪sacas,,,\t我想可以。但是,如果您希望剪切所有空格,而不仅仅是周围的空格,那么preg_replace可能会更好。在第二个示例中,您使用了正斜杠,而不是反斜杠:\。因此它必须是:\s。第二个参数不是正则表达式\s不是。因此,它会在字符串的开头和结尾剪切每个\和s。这只是我在写问题时的一个打字错误。修剪sacas,,,\t我想可以。但是,如果想减少每个空白,而不仅仅是围绕空白,则PrggExchange可能会更好。string@PeterM建议的ReXEP也将删除中间的字符。string@PeterM