PHP - 需要删除字符串中的重复字符但希望包含异常

2023-12-03

我一直在互联网上寻找解决方案,但找不到。

我需要删除字符串中的重复字符,但还想包含一个例外,以允许整数数量的字符重复/保留在字符串中。

例如,我尝试了以下操作:

$str = 'This ----------is******** a bbbb 999-999-9999 ******** 8888888888 test 4444444444 ********##########Sammy!!!!!! ###### hello !!!!!!';

$t1 = preg_replace('/(.)\1{3,}/','',$str);
$t2 = preg_replace('/(\S)\1{3,}/','',$str);
$t3 = preg_replace('{(.)\1+}','$1',$str);
$t4 = preg_replace("/[;,:\s]+/",',',$str);
$t5 = preg_replace('/\W/', '', $str);
$t6 = preg_replace( "/[^a-z]/i", "", $str);

echo '$t1 = '.$t1.'<br>';
echo '$t2 = '.$t2.'<br>';
echo '$t3 = '.$t3.'<br>';
echo '$t4 = '.$t4.'<br>';
echo '$t5 = '.$t5.'<br>';
echo '$t6 = '.$t6.'<br>';

Results:

$t1 = This is a 999-999- test Sammy hello 
$t2 = This is a 999-999- test Sammy hello 
$t3 = This -is* a b 9-9-9 * 8 test 4 *#Samy! # helo !
$t4 = This,----------is********,a,bbbb,999-999-9999,********,8888888888,test,4444444444,********##########Sammy!!!!!!,######,hello,!!!!!!
$t5 = Thisisabbbb99999999998888888888test4444444444Sammyhello
$t6 = ThisisabbbbtestSammyhello

期望的输出是:

This ---is*** a bbbb 999-999-9999 *** 8888888888 test 4444444444 ***###Sammy!!! ### hello !!!

如您所见,desired输出只留下数字,只留下 3 个重复的字符,即 --- ###* !!!

如果可能的话,我希望能够将异常从 3 更改为任何其他整数。

提前致谢。


这将做到这一点:

preg_replace('/(([^\d])\2\2)\2+/', '$1', $str);

[^\d]匹配非数字的单个字符。
\2指捕获的数字
$1指的是第一个捕获的组,它将是前三个重复的字符,因此额外的\2+被剥夺。

Codepad

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP - 需要删除字符串中的重复字符但希望包含异常 的相关文章

  • 在 PHP 中包含 PHP 文件

    我有一个网站 它运行 PHP if 语句来根据附加文件的类型 即 Jpg Txt MP4 显示内容 所以我显示 TXT 文件的代码是 if post attachment txt display attachment div class d
  • 如何使用正则表达式将字符串分成相同字符的组?

    我有一个这样的字符串 var string AAAAAAABBBCCCCCCDD 并喜欢将字符串分割成这种格式的数组 same characters gt same group 使用正则表达式 Array AAAAAAA BBB CCCCC
  • get url 重定向时 File_get_contents() 不起作用

    我正在使用的功能是 function http post url data data url http build query data data len strlen data url date default timezone set
  • 如何对 SQL 进行多次查询

    我正在尝试创建一个表 并在 PHP 脚本的帮助下在数据库中插入一些值 虽然只插入 1 行 但效果很好 当我尝试输入更多行数时 出现错误 我需要为每个查询编写完整的插入语句 因为我正在使用在线 Excel 到 SQL 查询转换器
  • 如何隐藏 URL 中的锚标记

    如何隐藏地址栏中以下链接 href 的哈希值 a href index php dev name 所以它会将我重定向到index php dev name 但我希望地址栏只显示index php 您可以使用 Javascript oncli
  • PHP 无法加载动态库“php_pdo_oci.dll”

    我在 Windows 8 上运行 Apache 2 4 7 和 PHP 5 5 9 我安装了 PHPUnit 并开始弹出此警告图像 警告 是的 我在 php ini 中启用了扩展加载以及 extension dir 以更正文件夹 并且该文件
  • 使用 PHP PayPal REST API 退款?

    我正在开发一个集成到 PayPal 的 REST API 中的 PHP 应用程序 我正确处理了事务并将事务 ID 保存到 MySQL 数据库中 我现在正在尝试退款 但无法让它停止给出 传入 JSON 请求未映射到 API 请求 错误 有人对
  • 对话框上的 EditText 不返回任何文本

    我太累了 找不到错误 我没有发现任何错误 但我没有从 editText 收到任何文本 请看下面的代码 活动密码 xml
  • 检查 PHP 中的字符串长度

    我有一个长度为 141 个字符的字符串 使用下面的代码我有一个if如果字符串大于或小于 140 则语句返回一条消息 libxml use internal errors TRUE dom new DOMDocument dom gt loa
  • 如何纠正这个非法字符串偏移?

    我收到此错误 警告 第 32 行 home mysite public html wp content themes evento lib php extra class php 中的非法字符串偏移 type 我意识到文件中的这部分代码是错
  • ruby 字符串到哈希值的转换

    我有一个这样的字符串 str uu p xx m yy n zz m 我想知道如何将给定的字符串转换为哈希值 即我的实际要求是 有多少个值 符号之前 有m n和p 我不需要计数 我需要一个精确的值 这样输出效果会更好 m gt xx zz
  • 对 SimpleXML 数据进行排序和分组

    我正在对 XML 文件中的出版物数据进行排序和分组 我目前使用的方法效果很好大部分情况下 尽管我觉得有一种更有效的方法来完成我想要完成的任务 以下是目标节点的示例
  • 如何创建一个语句来打印以特定单词开头的单词? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 python 中打印从特定字母开始的单词 而不使用函数 而是使用方法或循环 1 我有一个字符串 想要打印以 m 开头的单词 S
  • Mysqli 更新抛出 Call to a member function bind_param() 错误[重复]

    这个问题在这里已经有答案了 我有一个 70 80 字段表单 需要插入到表中 因此我首先根据表单中的输入名称在数据库中创建了一个表 而不是手动创建一个巨大的插入语句 这是我使用的代码创建 更改表 function createTable ar
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • 如何将 Smarty 3 包含到 Laravel 4 中?

    我是 Laravel 的新手 所以仍在习惯这些概念 但是我有大约 10 年的使用 Smarty 的经验 所以我希望利用这一点 除了事实上 Blade 似乎缺乏太多我发现有用且在 Smarty 中开箱即用的功能 但无论如何除了这个问题的要点之
  • WordPress 自定义帖子类型未显示在搜索结果中

    我在 WordPress 中遇到自定义帖子类型 测验 和搜索的问题 自定义帖子类型未显示在我的搜索结果页面中 我的搜索结果中仅显示默认的帖子内容 以下是我使用的代码 函数 php函数create posttype register post
  • 从字符串中获取数字

    我有一个字符串 例如 lorem 110 ipusm 我想获取 110 我已经尝试过这个 preg match all 0 9 string ret 但这正在返回 Array 0 gt 1 1 gt 1 2 gt 0 我想要这样的东西 Ar
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网
  • 使用 crypt() 加密

    我目前正在做一个非常安全的登录系统 但我是 crypt 函数的新手 需要一些快速帮助 我在注册过程中使用 crypt 加密密码字符串并将其保存到数据库中 但是 我如何在登录过程中解密密钥 或者我应该怎么做 或者是否可以对提交的密码字符串进行

随机推荐

  • 在单线程上下文中使用 JMS Session 对象的原因

    我是 JMS 的新手 所以对于这里的专家来说这可能是一个非常菜鸟的问题 然而 我很难理解 JMS 是如何工作的一个非常重要的概念 来自Javadoc 的JMS 会话 粗体强调我的 会话对象是单线程上下文用于生产和 消费消息 尽管它可以分配提
  • 读取 ASN.1 DER 编码的 RSA 公钥

    我正在编写一个应用程序来更好地了解 DKIM 规范说我从域 TXT 记录中检索 ASN 1 DER 编码 公钥 我可以在 s1024 domainkey yahoo com MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBi
  • MySQL显示两个值之差之和

    以下是我的查询 SELECT n name n customer id m msn m kwh m kwh LAG m kwh OVER PARTITION BY n customer id ORDER BY m data date tim
  • 要使我的网站在移动浏览器上运行,我需要了解什么?

    我正在使用 ASP NET 3 5 和 Visual Studio 2008 我有一些关于我的网站和移动用户的问题 我的网站能在手机上正确显示吗 哪些项目无法在手机上使用 我知道闪存可能是个问题 为了让我的网站 100 在移动设备上运行 您
  • 即使在 %c 前面添加空格后仍继续跳过提示

    根据我看到的关于同一问题的大多数来源和问题 我尝试添加空格 例如 scanf c variable 但由于某种原因 它最终跳过了更多本应由用户输入的提示 include
  • 通过 OAuth 访问 imgUr(上传到用户帐户)

    为了开始执行这个 简单 任务 我研究了一个作为示例的程序here要遵循并重现这些步骤 该过程可以 匿名 上传图像 Private ReadOnly ClientId As String My Client ID gt Private Rea
  • 在 C# 中获取键值对列表的所有可能组合

    我有一个像这样的键值对 var accounts new List
  • 如何将 PFQuery 用于存储为 NSDictionary 值的 PFObject 数组

    我在 iOS 应用程序中使用 parse com 将数据存储到解析云服务 我在查询嵌套对象时遇到问题 我有以下数据模型 游戏 类 包含 获奖者 获胜者 是一个数组NSDictionary 字典中的每一项都是 1 Player 到 N Pow
  • 何时使用断言以及何时使用异常

    大多数时候我会使用异常来检查代码中的条件 我想知道什么时候是使用断言的合适时机 例如 Group group null try group service getGroup abc catch Exception e I dont log
  • SpriteKit 中的 ScrollView

    我发现了一些与此类似的其他问题和答案 但没有一个对我来说非常完美 我的愿景是在屏幕底部有一个水平可滚动视图 我可以在其中滚动浏览看起来像手中的卡片的内容 理想情况下 我最终可以将中间的卡片放大一点 并使其具有突出显示的外观 以向用户显示选择
  • 多个快捷方式图标?

    我今天看到这个 想知道如何实现 我正在寻找另一个例子 但同时也会在这里放弃这个问题 该页面的
  • 如何从 URL 中删除锚标记?

    我试图删除切换手风琴时使用的锚标记或包含指向页面其他部分的锚的链接 http rivo wpengine com why rivo toggle id 3 我想删除 toggle id 3此 URL 的一部分 我可以用 htaccess文件
  • JAXB 绑定异常

    将 XSD 解析为 Java 对象时出现以下错误 线程 main 中的异常 java lang IllegalArgumentException 预计 ja 级 vax xml bind annotation XmlAccessType 但
  • CakePHP 3.0.8 翻译行为和数据验证(requirePresence,notEmpty)

    我的问题很简单 但我不知道如何解决 我的网站是多语言的 我希望用户能够根据需要添加多种语言的文章 同时需要输入他的语言 取决于他的区域设置 问题是 根据 CakePHP 的翻译约定 所有输入都必须以字段名称结尾 无论哪种语言 所以所有字段对
  • EF Core Groupby 获取行的最高值

    我有下表 Id ParentId Version 1 1 0 2 1 1 3 1 2 4 4 0 5 4 1 6 4 2 我正在寻找查询 首选 Linq 到 EF 我可以在哪里选择最高的Version每组ParentIds 我目前有这样的事
  • 为什么我的测试抛出异常 - 无法在网络驱动程序中定位元素?

    package testproject import org openqa selenium By import org openqa selenium WebDriver import org openqa selenium WebEle
  • Matlab filtfilt()函数在Java中的实现

    有没有人尝试过实现matlab的filtfilt Java 中的函数 或者至少在 C 中 如果你们有一个算法 那将会有很大的帮助 好吧 我知道这个问题很古老 但也许我可以帮助那些最终在这里想知道什么的人filtfilt事实上确实如此 尽管从
  • R正则表达式:http匹配

    我在使用正则表达式匹配 http 链接时遇到问题 我有一个想要从网站源代码中提取的模式 源代码有 200 多行 其中有很多 HTML 乱码 例如
  • 找不到支持 iPhone-Portrait-NumberPad 键盘类型 4 的键板;使用 3876877096_Portrait_iPhone-Simple-Pad_Default

    我已经下载了适用于 iPhone 的 iOS 8 Gold Master 和 SDK 我测试了该应用程序 除了一件事之外 它运行良好 我有一个文本字段 如果用户想要输入某些内容 其中会出现数字键盘 此外 当键盘显示时 将在空白区域添加一个自
  • PHP - 需要删除字符串中的重复字符但希望包含异常

    我一直在互联网上寻找解决方案 但找不到 我需要删除字符串中的重复字符 但还想包含一个例外 以允许整数数量的字符重复 保留在字符串中 例如 我尝试了以下操作 str This is a bbbb 999 999 9999 8888888888