繁体   English   中英

如何用PHP中的单个标点符号替换所有重复的标点符号?

How can I replace all duplicate punctuation with single punctuation in PHP?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

有没有一种有效的方法用单个字符替换所有重复的非字母数字字符?

这个问题迫使人们明确标点符号:

PHP - 删除重复标点符号?

像这样:

$str = preg_replace('~[?!]{2,}~', '?', preg_replace('~([.,!?])(\\1+)~', '\\1', $str));

是否可以实现相同的结果但是对于所有非字母数字字符而没有明确地通过名称引用它们?

这是一个用例:

Hello...  how   are you!!??  I''m bored!!----!!!&&&&&^^^^%%%(()))((<<<<<

Hello. how are you!? I'm bored!-!&^%()(<

UPDATE

不幸的是,在一个用例中,上面的内容过于深入: http:// 如何才能保持双/对于网址(或干脆当他们遵循: ),但不允许重复定期/或甚至超过2 /: 这是一个用例:

My ////favorite//// site is http://///example.com!!!!!!!

变为:

My /favorite/ site is http://example.com!
1 个回复

您可以使用:

$str = preg_replace('~((?<!:)[^\p{L}\p{N}])\1+~u', '$1', $str);
//=> Hello. how are you!? I'm bored!-!&^%()(<

RegEx演示

  • [^\\p{L}\\p{N}] - 匹配除unicode字母数字字符以外的任何内容
  • (?<!:) - 仅在不在前面时匹配:照顾http://...
  • ([^\\p{L}\\p{N}]) - 在组#1中捕获以上用于反向引用
  • \\1+ - 匹配一个或多个捕获的组#1,从而确保2个或更多相同的非字母数字匹配
  • 将其替换为$1即捕获的非字母数字字符
2 如何用HTML实体替换标点符号

我想更换标点符号的部分在一个字符串,如,'".&lt;&gt;?;:与相应的HTML实体, &amp;#44;&amp;#39;&amp;#34;&amp;#60;&amp;#62;&amp;#59;&amp;#58;到目前为止,我已经研究了将string库与.maketrans和string.pu ...

5 替换除缩写以外的所有标点符号

我在PHP中有一个正则表达式,用空格替换了我不需要的所有内容 但是有一个例外,我想保留标点符号作为缩写。 例: FBIFederal.Bureau.of.Investigation =&gt;'FBI联邦调查局' SWATTeam =&gt;'特警队' 应 ...

2017-08-03 12:06:43 1 86   php/ regex
6 在此代码中如何用空格替换标点符号?

我有以下代码: 首先,我想知道它的作用: 如何编写这样的for循环? 第二,我要替换这些标点符号,例如在这样的文本中说:“ hello_there?my_friend!” 使用上面的代码加上空格。 我如何更改该代码来做到这一点? ...

7 用空格替换标点符号

我的代码有问题,无法弄清楚如何继续前进。 输出: 我想要的是用空格替换标点符号但不知道使用什么功能或循环。 有人可以帮我吗? ...

8 PHP-删除重复的标点符号?

假设您具有以下字符串: Hello... how are you!!?? I'm bored!! Hello... how are you!!?? I'm bored!! 我希望尽可能删除连续的标点符号,并在出现类似“!?”的情况时保留问号。 过滤后的字符串应如下所示: Hello. ...

2012-05-11 04:05:56 3 320   php
9 在C中定义标点符号的替换

几天前,有人告诉我他们的键盘有问题,使他们无法输入(在键盘上。当我写C时,我想到的第一件事是要么从某个位置复制字符,然后将其粘贴或粘贴到尝试使用预处理程序指令#define 。一旦尝试使用#define ,我意识到gcc不允许我写类似#define OB (东西#define OB (而且我非常理解 ...

10 PHP标点符号混乱

我很难获得PHP . 并且"在脚本中写入文件时是直接的。我是新手,所以看起来很混乱。本书是这样做的: 问题是什么是期间和报价的适当放置。 由于它是如何一起捣​​碎的,我不知道它们需要附加什么。 每个变量都需要".$VARIABLE." 或者它们是用于像\\t “的标签。我想重新排 ...

2014-02-20 21:24:25 8 609   php
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM