【发布时间】:2016-10-21 04:02:03
【问题描述】:
我今天发现需要使用 str_replace() 将字符串中的所有连字符替换为空格。很简单:
$string = "Some-test-string";
$string = str_replace('-', ' ', $string);
问题是,在str_replace() 的“替换”部分使用' '(带有空格的字符串)感觉很脏。看起来也很脆弱……看起来也很丑。
没有更好的选择吗?我尝试在“替换”部分使用正则表达式模式,但这不起作用,它是字面的。
理想情况下,如果可能的话,这样的事情会很棒:
$string = "Some-test-string";
$string = str_replace('-', '/\s/', $string);
谢谢!
已编辑:根据建议将所有 preg_replace() 调用替换为 str_replace()。
【问题讨论】:
-
您可以使用十六进制值作为空格:
preg_replace("/[-]+/", "\x20", $string);,但我不知道这样是否更简洁 -
使用 str_replace 会更好。只要它有效且易于理解,我就不会担心它看起来脆弱或丑陋。我会使用 ' ' 而不是 " "。
-
Abdullah Bakhsh - 替换为文字 \x20.. 我应该澄清我想要字符串中的空格......只是试图找到一种替代方法来表示 preg_match() 中的替换打电话。
-
感谢 John Fawcett - 在我发布此内容几分钟后,我将其更改为 str_replace,因为我意识到该模式还不够先进,需要 preg_match()... 我将把我的问题更新为反映这一点!
-
好吧,
\s是空格、制表符或换行符,PHP 无法知道您期望的字符(或者我不知道)。' '应该没问题,如果这是用于浏览器的 HTML 实体,您可以输入 或 。
标签: php string preg-replace str-replace