正则表达式:如何匹配没有任何字符重复 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 次的字符串? 的相关文章

  • 从字符串向量中删除方括号

    我有一个字符向量 其中每个元素都括在括号中 我想 去掉括号 只剩下字符串 所以我尝试 n c Dave Tony Sara paste n sep 不幸的是 由于某种原因这不起作用 在使用相同的代码之前我已经执行了相同的任务 并且不确定为什
  • 正则表达式匹配IP地址[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我是正则表达式的新手 我想使用preg match函数用于查找字符串是否为 IP 地址 例如 string 10 0 0 1 preg m
  • 通过jquery在日期框中自动添加斜杠/符号[重复]

    这个问题在这里已经有答案了 我发现几个问题但没有答案 所以我问问题 如何添加自动斜杠 符号
  • 如何使用 regexp 来匹配 TCL 中的括号

    我有一个关于在 TCL 中使用正则表达式匹配括号的问题 例如我有一个像这样的字符串 yes it is true and it is fine 我只想匹配这部分yes it is true 如何搭配呢 您可以将括号括在字符类中 如 boba
  • Python正则表达式查找所有单个字母字符

    我想找到字符串中单个字母字符每次出现的所有索引 我不想捕获单个字符 html 代码 这是我的代码 import re s fish oil B stack peanut c b words re finditer S s has alpha
  • Scrapy规则如何与爬行蜘蛛一起工作

    我很难理解 scrapy 爬行蜘蛛规则 我有一个例子 它并不像我希望的那样工作 所以它可能是两件事 我不明白规则是如何运作的 我形成了不正确的正则表达式 导致我无法获得所需的结果 好吧 这就是我想做的 我想编写爬行蜘蛛 它将获取所有可用的统
  • 需要正则表达式。仅匹配数字和空格的固定长度字段

    我正在尝试获得注册 表达式匹配正好 11 位数字或 0 到 10 位数字 并用空格填充到 11 个字符 x20 Match 12345678901 123 Don t Match 5678901 123 78901 123 789 表达方式
  • 从字符串中提取第一个数字

    我有一个字符串 thisLine 其中包含由空格分隔的 11 个数字 我只想获取第一个数字 我尝试了命令 grep d d thisLine value TRUE 它返回整个字符串 而不是第一个数字 如何只返回第一个数字 我确信有很多可能性
  • 禁用特定 java 包的所有 checkstyle 检查

    我有两个包 即 com mydomain abc delegate xyz jaxws 托管 and com mydomain abc xyz jaxws managed 我要求仅对第二个包禁用 checkstyle 因为它们包含自动生成的
  • 正则表达式引擎如何解析具有递归子模式的正则表达式?

    此正则表达式匹配回文 1 2 我无法理解它是如何工作的 递归何时结束 以及正则表达式何时从递归子模式中断并转到 part Thanks 编辑 抱歉我没有解释 2 and 1 1 指第一个子模式 对其自身 2 反向引用第二个子模式的匹配 即
  • 正则表达式删除块注释也删除 * 选择器

    我正在尝试使用 bash 从 css 文件中删除所有块注释 我有以下 sed 命令的正则表达式 sed r s w s w d 这可以很好地去除块注释 例如 This is a comment this is another comment
  • 正则表达式字符串中第一个和最后一个非点的位置

    我希望找到字符串的第一个和最后一个非点元素的位置 理想情况下我想这样做regex在基地R 我已经写过R解决问题的代码 不过 我对一个感兴趣regex解决方案 感谢您的任何建议 这是一个示例数据集和R代码以获得所需的结果 此代码拆分字符串并使
  • 正则表达式接受 4 条规则中的 3 条

    我似乎无法让正则表达式正确满足以下要求 长度在 8 到 20 之间的字符串 必须包含至少 1 个大写字母字符 至少 1 个小写字母字符 以及至少 1 个数字或至少 1 个特殊字符字符 或两者 假设特殊字符仅限于包括 我最初是这样写的 A Z
  • 使用正则表达式如何从十进制数中删除尾随零

    我需要编写一些正则表达式 它接受一个数字并删除小数点后的所有尾随零 语言是 Actionscript 3 所以我想写 var result String theStringOfTheNumber replace the regex 例如 3
  • Javascript 正则表达式来匹配正则表达式

    我正在研究一个特殊的正则表达式来匹配 javascript 正则表达式 现在我有这个正则表达式工作 i g m 例如 foo match i g m gt foo foo undefined foo i match i g m gt foo
  • JavaScript:是否有完全支持环视的正则表达式库?

    As JavaScript 的内置正则表达式库 https developer mozilla org en US docs Web JavaScript Guide Regular Expressions不支持向后看 http www r
  • 使用 sed 删除大括号对之间的所有内容

    我有一个看起来像这样的字符串 B F blue master F red f k b f k b K black B F green 我想删除匹配的子字符串 它可能包含也可能不包含相同顺序的其他子字符串 我应该得到 master 作为最终输
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 如何使用 XPath 正则表达式匹配 URL

    需要 XPath 方面的帮助 我有这样一个XML
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望

随机推荐

  • 如何在一行中打印 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人物 目标是提供一个可以匹配上述示例之一的正则表达式模式 但不能同时匹配