PHP正则表达式替换以@结尾以2个空格结尾的单词[关闭]

Posted

技术标签:

【中文标题】PHP正则表达式替换以@结尾以2个空格结尾的单词[关闭]【英文标题】:PHP regex to replace words starting with @ end ending with 2 spaces [closed] 【发布时间】:2017-09-09 14:49:25 【问题描述】:

php 中,如何直接去除以 @ (at) 符号开头的单词后面的所有双空格?

示例输入:

This is  an @example  input.

示例输出:

This is  an @example output.

【问题讨论】:

请阅读What topics can I ask about 和How to ask a good question 和the perfect question 以及如何创建Minimal, Complete and Verifiable example SO 不是 免费的编码或代码转换或调试或教程或图书馆查找服务我们尝试修复您的代码,我们不编写您的代码 用一个空格替换任何多个内联空格是否会丢失任何东西? eval.in/775818 提示:使用preg_replace() 【参考方案1】:

匹配以@ 开头的单词,重置匹配输出,然后匹配多个空格然后进行替换:

preg_replace('~@\w+\K\s2,~', ' ', $input_string);

正则表达式解释:

@\w+    # Match a `@` fowlling a word
\K      # Reset matching process output
\s2,  # Match double or more whitespaces

PHP live demo

【讨论】:

以上是关于PHP正则表达式替换以@结尾以2个空格结尾的单词[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

不以元音开头或结尾的单词的正则表达式?

如何使用正则表达式匹配不以某些字符开头或结尾的单词?

正则表达式:如何匹配以括号“)”结尾的单词

C ++ 11正则表达式匹配一个不以句点结尾的完整单词?

没有空格的 Oracle 正则表达式

正则表达式:匹配以“AM”结尾的单词(不区分大小写比较)[重复]