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