【问题标题】:PHP regexp - put every word into the bracketsPHP 正则表达式 - 将每个单词放入括号中
【发布时间】:2013-12-10 00:06:55
【问题描述】:

我需要从以下位置转换一些字符串:

big red car

到:

(big) (red) (car)

我知道我可以使用explode()implode() 函数或foreach 循环来做到这一点,但我对regular expression 解决方案感兴趣。

【问题讨论】:

  • 您的字符串是否包含除 ASCII 字母和空格字符之外的其他内容?如果是这样,请展示一些示例(以及它们会发生什么)。例如,像"This is the 3rd déjà vu experience I've had" 这样的字符串怎么样?
  • 与正则表达式解决方案相比,您应该考虑在 implode/explode 解决方案上运行基准测试。另外,我有兴趣了解更多关于这个问题实际上试图解决什么问题?

标签: php regex preg-replace


【解决方案1】:

您可以为此使用preg_replace()

首先将这些单词与:

\b(\w+)\b

然后替换为:

($1)

在 PHP 中:

preg_replace('/\b(\w+)\b/', "($1)", $input);

【讨论】:

  • 添加g 标志以进行全局替换。
  • @Florent 谢谢,您发表评论时我正在编辑答案。
  • PHP 中没有 g 修饰符。检查我的previous comment
  • @HamZa 谢谢,我通常不使用 PHP,所以我不知道。感谢您的反馈。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-03
  • 1970-01-01
  • 1970-01-01
  • 2018-01-23
  • 1970-01-01
  • 2022-10-18
  • 2015-08-08
相关资源
最近更新 更多