【问题标题】:PHP: Replace unknown characters with regular expressionsPHP:用正则表达式替换未知字符
【发布时间】:2016-02-12 13:56:59
【问题描述】:

我正在处理在某些情况下在单词中包含额外空格的文本。例如:

马肖恩·林奇很棒。 A M A Z I N G!

我想把“A M A Z I N G”部分折叠成一个单词,这样最终的结果是这样的:

马肖恩·林奇很棒。太棒了!

我正在使用 PHP,我正在尝试找出一种使用 preg_replace 的方法(也许有更好的方法?),但我不知道从哪里开始。

【问题讨论】:

  • 添加您尝试过的代码。
  • 请分享您的尝试。
  • 您需要提供更多关于您要检测的样本。例如,您可能不想折叠That's a B movie. 以获得That's aB movie. 甚至That'saB movie. 那么,您真正想要做什么? 你尝试过什么?
  • 如何区分单词中的空格和单词之间的空格?嵌入空格的单词总是大写吗?这是现实世界的问题还是练习?

标签: php regex


【解决方案1】:

这个查找两个 UPPERCASE 字母之间的空格并替换所有出现的地方:

$string = "Marshawn Lynch is amazing. A M A Z I N G!";
$regex = "~(?<=[A-Z])\s(?=[A-Z])~";
$string = preg_replace($regex, "", $string);
echo $string;
// output: Marshawn Lynch is amazing. AMAZING!

见a demo on ideone.com。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多