正则表达式:如何匹配没有任何字符重复 3 次的字符串?

2024-04-07

我正在尝试创建一个单一的模式来验证输入字符串。验证规则不允许任何字符连续重复超过 3 次。

例如:

Aabcddee- 已验证。

Aabcddde - is not有效,因为 3d人物。

目标是提供一个可以匹配上述示例之一的正则表达式模式,但不能同时匹配两个示例。我知道我可以使用反向引用,例如([a-z])\1{1,2}但这仅匹配连续字符。我的问题是我不知道如何为此制作一个单一的模式。我尝试了这个,但我不太明白为什么它不起作用:

^(([a-z])\1{1,2})+$

在这里,我尝试匹配内部组中重复 1 或 2 次的任何字符,然后如果重复多次,则匹配该内部组。但事实并非如此。

Thanks.


检查字符串中是否有连续重复 3 次或以上的字符(任何类型,甚至换行):

/^(?!.*(.)\1{2})/s

您还可以检查输入字符串是否与此正则表达式没有任何匹配。在这种情况下,您还可以知道该字符连续重复3次或更多次。请注意,这与上面完全相同,除了负向前看中的正则表达式(?!pattern)被取出。

/^.*(.)\1{2}/s

如果您想添加验证字符串仅包含以下字符[a-z],并且你考虑aaA无效:

/^(?!.*(.)\1{2})[a-z]+$/i

如你看到的i标志(不区分大小写)影响捕获的文本与当前输入的比较方式。

Change + to *如果你想允许空字符串通过。

如果你想考虑aaA为了有效,并且您希望同时允许大写和小写:

/^(?!.*(.)\1{2})[A-Za-z]+$/

乍一看,它可能与上一个相同,但由于没有i标志,捕获的文本不会进行不区分大小写的匹配。

下面是失败的答案,你可以忽略它,但你可以阅读它来娱乐。


您可以使用此正则表达式来检查字符串是否有 3 个重复字符(任何类型,甚至是新行)。

/^(?!.*(.)(?:.*\1){2})/s

您还可以检查输入字符串是否与此正则表达式没有任何匹配。在这种情况下,您还可以知道该字符被重复超过或等于3次。请注意,这与上面完全相同,除了负向前看中的正则表达式(?!pattern)被取出。

/^.*(.)(?:.*\1){2}/s

如果您想添加验证字符串仅包含以下字符[a-z],并且你考虑aaA无效:

/^(?!.*(.)(?:.*\1){2})[a-z]+$/i

如你看到的i标志(不区分大小写)影响捕获的文本与当前输入的比较方式。

如果你想考虑aaA为了有效,并且您希望同时允许大写和小写:

/^(?!.*(.)(?:.*\1){2})[A-Za-z]+$/

乍一看,它可能与上一个相同,但由于没有i标志,捕获的文本不会进行不区分大小写的匹配。

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

正则表达式:如何匹配没有任何字符重复 3 次的字符串? 的相关文章

  • 正则表达式查找字符串中的整数和小数

    我有一个像这样的字符串 str1 12 ounces str2 1 5 ounces chopped 我想从字符串中获取金额 无论它是否是小数 12 或 1 5 然后获取紧邻的前一个测量值 盎司 我能够使用一个非常基本的正则表达式来获取测量
  • 为什么我的 javascript regex.test() 给出交替结果[重复]

    这个问题在这里已经有答案了 可能的重复 Javascript 正则表达式返回 true 然后 false 然后 true 等等 https stackoverflow com questions 2630418 javascript reg
  • Python 非贪婪正则表达式

    我如何制作一个像这样的Python正则表达式 这样 给定 a b c d e 蟒蛇匹配 b 代替 b c d 我知道我可以使用 代替 但我正在寻找一种更通用的解决方案 使我的正则表达式更加干净 有没有办法告诉python 嘿 尽快匹配这个
  • Java 正则表达式 - 字母数字,最多一个连字符,句点或下划线,七个字符长

    我是 Java 正则表达式工具的新手 尽管它们潜力巨大 但我很难完成这项任务 我想编写一个正则表达式来验证遵循以下语法的输入字符串 小写字母和数字的任意组合 仅一个下划线 一个破折号或一个句号 无其他特殊字符 最小长度为 5 我想出了以下解
  • 将html数据解析成python列表进行操作

    我正在尝试读取 html 网站并提取其数据 例如 我想查看公司过去 5 年的 EPS 每股收益 基本上 我可以读入它 并且可以使用 BeautifulSoup 或 html2text 创建一个巨大的文本块 然后我想搜索该文件 我一直在使用
  • netsh 结果到 PowerShell 对象

    我正在尝试与NETSH https ss64 com nt netsh html来自 PowerShell 我想看到这个命令的结果 例如一个对象 但是netsh返回一个字符串 netsh wlan show hostednetwork Ge
  • Perl 正则表达式图灵完备吗?

    我见过 Ruby 和 Perl 程序员做了一些事情复杂的代码挑战 https codegolf stackexchange com questions 3596 regex validating regex完全用正则表达式 这前瞻和后瞻 h
  • ORA-12728: 正则表达式中的范围无效

    我想检查表中是否插入了有效的电话号码 所以我的触发代码在这里 select start index into mob index from gmarg mobile operators where START INDEX substr ne
  • 如何在 CakePHP 中“验证”人名?

    我有一个 PHP 脚本 应该检查 有效 的人名 但最近破解了带有空格的名称 因此我们向验证器添加了空格 除了这样做之外 有没有办法向 CakePHP 的验证器添加黑名单以阻止所有 无效 字符 而不是允许 有效 字符 注意 我 通常 知道如何
  • 使用正则表达式搜索 Ruby 数组

    你好 我有一个小的 ruby 函数 它可以分割出一个 Ruby 数组 如下所示 def rearrange arr from to sidx arr index from eidx arr index to arr sidx arr sid
  • 如何用正则表达式替换多个匹配/组?

    通常我们会编写以下内容来替换一场比赛 namesRegex re compile r is life re I replaced namesRegex sub r butter There is no life in the void pr
  • 如何使正则表达式匹配不区分大小写?

    我有以下正则表达式加拿大的邮政编码 http en wikipedia org wiki Postal codes in Canada ABCEGHJKLMNPRSTVXY 1 d 1 A Z 1 d 1 A Z 1 d 1 它工作正常 但
  • 获取字符串中的最后一个整数

    我需要隔离包含多个整数的字符串中最新出现的整数 我怎样才能得到23代替1 for lastnum1 text 1 out of 23 lastnum1 this gt getEval eregi replace out of text 你可
  • 如何在 javascript 正则表达式中匹配平衡分隔符?

    我原以为这个问题是不可能的 据我所知 Javascript 的正则表达式既没有递归插值 也没有漂亮的 NET 平衡组功能 但问题就在那里 如问题 12 所示正则表达式 alf nu http regex alf nu 匹配平衡对 lt an
  • 日期 (yyyy/MM/dd) 或年份 (yyyy) 的正则表达式验证器

    我想要正则验证表达式来验证仅输入年份 yyyy 或日期 yyyy MM dd 它不得接受 21 23323 它应该接受任何四位整数值 例如 2012 并且还应该仅接受年份 yyyy MM dd 格式 您不需要为此使用正则表达式 我会用Dat
  • 正则表达式删除字符串中的双/三逗号

    我需要解析一个字符串 因此结果应该像这样输出 abc def ghi klm nop 但我收到的字符串可能看起来更像这样 abc def ghi klm nop 关键是 我事先不知道单词之间有多少个逗号 我可以在 C 中使用正则表达式来帮助
  • 替换C#字符串中的数字

    我正在尝试使用正则表达式对字符串进行一些工作 但遇到了一些困难 我的目标是用字符替换字符串中的数字 特别是如果字符串中有一组数字 我想用一个字符替换整个数字组 如果只有一个数字 我想将其替换为 例如 如果我有字符串 test12345 tx
  • 使用 Grep 查找两个短语之间的文本块(包括短语)

    是否可以使用 grep 来高亮所有以以下内容开头的文本 mutablePath CGPathCreateMutable 并以以下内容结尾 CGPathAddPath skinMutablePath NULL mutablePath 这两个短
  • Perl regex:如何知道匹配数

    我循环遍历一系列正则表达式并将其与文件中的行进行匹配 如下所示 for my regex regexs ref LINE for rawfile regex do do something here next LINE 有没有办法让我知道我
  • 我可以定义自定义字符类简写吗?

    Java 提供了一些有用的字符类 例如 d and w 我可以定义自己的角色类别吗 例如 能够为字符类定义简写 例如 A Za z 我可以定义自己的角色类别吗 不 你不能 就个人而言 当我有一个 稍微 复杂的正则表达式时 我将正则表达式分解

随机推荐

  • 如何在一行中打印 numpy.array?

    我测试了 PyCharm 和 IDLE 它们都将第 7 个数字打印到第二行 Input import numpy as np a np array 1 02090721 1 02763091 1 03899317 1 00630297 1
  • 使用 rake 任务重置数据库

    我想使用 Heroku 的调度程序 https devcenter heroku com articles scheduler每天重置我的数据库一次 建议对调度程序使用 rake 任务 这是我尝试过的 task reset database
  • 创建一组链接的项目

    有一个购买不同产品的用户列表 我想按用户购买行为对商品进行分组 如果任何用户购买两个产品 则这些产品应属于同一组 购买链接产品 user item 1 cat food 1 cat toy 2 cat toy 2 cat snacks 10
  • Android:使列表视图顶部的视图与列表视图一起滚动

    我有一个显然可以滚动的列表视图 列表视图包含一些表单问题 一旦用户提交表单 我们就会在列表视图的顶部放置一个类似邮票的自定义视图 并阻止用户回答问题 但这在这里并不重要 邮票应该出现在列表视图的顶部 如屏幕顶部 并且可以以与列表视图相同的速
  • 使用 Groovy 从属性文件中获取值

    如何使用 Groovy 从属性文件中获取值 我需要一个属性文件 properties 其中文件名作为键 目标路径作为值 我需要在运行时解析密钥 具体取决于需要移动的文件 到目前为止 我可以加载看起来的属性 但无法从加载的属性中 获取 值 我
  • 由于地址已在使用错误,Activemq 无法运行

    如何解决错误 Java Runtime Oracle Corporation 1 7 0 05 E Program Files Java jdk1 7 0 05 jre Heap sizes current 1004928k free 99
  • 从文本字符串创建单词数组

    我想使用 PHP 将文本拆分为单个单词 您知道如何实现这一目标吗 我的做法 function tokenizer text text trim strtolower text punctuation a z0 9 result preg s
  • POSIX 标准对 atexit() 处理程序中的线程堆栈有何规定?操作系统的做法是什么?

    当我们的 UNIX C 程序需要紧急退出时 我们使用 exit 3 函数并安装 atexit 3 处理程序来进行紧急清理 这种方法工作得很好 直到我们的应用程序被线程化 此时 atexit 处理程序停止正常工作 我们通过试验了解到一个错误
  • 打印表达式并对其求值的宏(使用 __STRING)

    为了学习和演示 我需要一个打印其参数的宏and对其进行评价 我怀疑这是一个非常常见的案例 甚至可能是一个常见问题解答 但我找不到实际的参考资料 我当前的代码是 define PRINT expr fprintf stdout s gt d
  • 初始化成员变量

    我已经开始采用这种模式 template
  • 如何在 iphone safari 中检测照片/视频是从相机拍摄还是从相机胶卷导入

    在我的网站上我有一个file input标签上传照片 视频 当在 mobile safari 中打开网站并单击文件输入时 会打开一个包含 3 个选项的操作表take photo or Video choose Existing and ca
  • 正则表达式匹配日月和年

    我尝试了一些 Windows 日期格式 该格式依赖于区域设置 因此 为了匹配日 月和年 我开始使用正则表达式 我有一些非常基本的经验 我在Python中使用了正则表达式 我的日期格式是dd mm yyyy hh mm ss 为了匹配日 月和
  • HttpWebRequest 在授权标头中发送无参数 URI

    我正在从 NET 连接到 Web 服务 例如 var request HttpWebRequest WebRequest Create uri request Credentials new NetworkCredential usr pw
  • GXT 2.2 - 消息框按钮常量

    这是一个关于如何检测在 MessageBox Dialog 中单击了哪个按钮的问题 仅限 GX T 2 1 或 2 2 请不要使用 GXT 3 接听 理想情况下 这就是我进行确认对话框的方式 final MessageBox box Mes
  • Android KitKat HttpURLConnection 断开 AsyncTask

    在我的应用程序中 我使用下载文件HttpURL连接 http developer android com reference java net HttpURLConnection html in an 异步任务 http developer
  • 是否可以从 Django 请求检测浏览器刷新?

    是否可以在 Django 请求中检测用户的浏览器刷新 就其本身而言 我相信没有办法仅通过查看请求对象来知道页面是否已刷新 客户可以轻松打开该页面的第二个版本 您还必须保留有关所有请求的一些状态数据 以便比较时间戳等内容 但这只是对实际发生情
  • ASP.NET 2.0 会话超时

    已经有人在本论坛中提出了有关会话超时的问题 如果有人能再次澄清这一点 我将不胜感激 我有一个 asp net 2 0 应用程序 如果用户没有执行任何活动并按下页面上的按钮 他被重定向到 sessionExpired aspx 页面 那么 1
  • Windows XP 中的 inet_pton 或 InetPton 等价物是什么?

    我需要确定特定字符串是否是有效的 IPv4 或 IPv6 地址文字 如果我理解正确的话 在 POSIX 系统上执行此操作的正确方法是使用inet pton将其转换为网络地址结构 看看是否成功 Windows Vista 及更高版本有Inet
  • 在 Qt Creator 中推广小部件

    Qt 创建者可以选择将一个小部件提升为从基本小部件派生的自定义创建的类 我想使用它来将小部件提升为当前项目中的类 Qt 创建者询问我有关类名和头文件名的信息 这些值直接转到 ui文件 然后到ui myform h 问题是该文件可能 通常是
  • 正则表达式:如何匹配没有任何字符重复 3 次的字符串?

    我正在尝试创建一个单一的模式来验证输入字符串 验证规则不允许任何字符连续重复超过 3 次 例如 Aabcddee 已验证 Aabcddde is not有效 因为 3d人物 目标是提供一个可以匹配上述示例之一的正则表达式模式 但不能同时匹配