php – 正则表达式从字符串中删除所有单个字符

栏目: PHP · 发布时间: 6年前

内容简介:翻译自:https://stackoverflow.com/questions/13299934/regex-to-remove-all-single-characters-from-a-string

我需要一个正则表达式来删除字符串中的所有单个字符,而不仅仅是单个字母或数字

字符串是:

“A Future Ft Casino Karate Chop ( Prod By Metro )”

它应该出现:

“Future Ft Casino Karate Chop Prod By Metro”

我目前使用的表达式(在 PHP 中)正确地删除单个’A’但保留单个'(‘和’)’

这是我正在使用的代码:

$string = preg_replace('/\b\w\b\s?/', '', $string);

试试这个:

(^| ).( |$)

分解:

1.  (^| )  ->  Beginning of line or space  
   2.  .      ->  Any character  
   3.  ( |$)  ->  Space or End of line

实际代码:

$string = preg_replace('/(^| ).( |$)/', '$1', $string);

注意:我不熟悉PHP正则表达式的工作原理,因此代码可能需要稍微调整,具体取决于实际的正则表达式需求的声明方式.

正如m.buettner所指出的,这里的代码中会有一个尾随的空格.需要一个修剪来清除它.

编辑:Arnis Juraga指出,这不会清除b c过滤掉b的多个单个字符.如果这是一个问题,请使用此正则表达式:

(^| ).(( ).)*( |$)

添加到中间的(().)*将查找任何字符后跟0的任何空格.不利的一面是,最终会出现一系列单个字符所在的双倍空格.

这意味着:

The a b c dog

会变成这样:

The  dog

执行替换以获取单个字符后,您需要使用以下正则表达式来定位双空格,然后用单个空格替换

( ){2}

翻译自:https://stackoverflow.com/questions/13299934/regex-to-remove-all-single-characters-from-a-string


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法谜题

算法谜题

Anany Levitin、Maria Levitin / 赵勇、徐章宁、高博 / 人民邮电出版社 / 2014-1-1

算法是计算机科学领域最重要的基石之一。算法谜题,就是能够直接或间接地采用算法来加以解决的谜题。求解算法谜题是培养和锻炼算法思维能力一种最有效和最有乐趣的途径。 本书是一本经典算法谜题的合集。本书包括了一些古已有之的谜题,数学和计算机科学有一部分知识就发源于此。本书中还有一些较新的谜题,其中有一部分谜题被用作知名IT企业的面试题。全书可分为4个部分,分别是概览、谜题、提示和答案。概览介绍了算法......一起来看看 《算法谜题》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试