正则表达式:以任意顺序匹配特定字符,每个字符的出现次数不超过指定的次数

2024-01-13

我有一个字符列表,例如{o, b, c, c, d, o, f}.

如果字符串包含不在该列表中的字符,我不希望它成为匹配项。如果一个字符串包含的某个字符出现的次数多于该列表中该字符出现的次数,我不希望它成为匹配项。

字符串中的字符可以按任何顺序出现,并且不必所有字符都出现。在上面的例子中"foo"应该是匹配但不是"fooo".

例如,我将上面的示例缩小为(o{0,2}b?c{0,2}d?f?),但这不太有效,因为该正则表达式中的顺序很重要。我得到了一场比赛"oof"但不是为了"foo".


正如 gview 所说,正则表达式不是正确的工具。但是,如果您的正则表达式引擎支持前瞻,您可以使用以下命令:

^(?=(?:[^o]*o){0,2}[^o]*$)(?=(?:[^c]*c){0,2}[^c]*$)(?=[^b]*b?[^b]*$)(?=[^d]*d?[^d]*$)(?=[^f]*f?[^f]*$)[obcdf]+$

它有点长但很简单:

该字符串与^[obcdf]+$(注意锚点的使用)。

前瞻(?=...)仅检查(后跟):

(?=(?:[^o]*o){0,2}[^o]*$)   # no more than 2 o until the end

(?=[^b]*b?[^b]*$) # no more than 1 b until the end

前瞻中的每个子模式都描述整个字符串。

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

正则表达式:以任意顺序匹配特定字符,每个字符的出现次数不超过指定的次数 的相关文章

  • [Regex]::Replace() 和 -replace 有什么区别?

    我明白了之间的区别 Replace and replace 但是什么是 replace and Regex Replace 我测试了以下两个代码 但对我来说结果完全相同 我还提到了 PowerShell Cookbook O reilly
  • 删除匹配前的一个单词和一个单词

    匹配之前的一个单词可以是一组任何符号 例如 D E F 我有一个正则表达式 s w s XXX 输入示例 This is KKK M D D xXx PPP输出示例 This is KKK PPP 所以我需要删除 XXX 之前的 1 个单词
  • Python re无限执行

    我正在尝试执行这段代码 import re pattern r w w s re compiled re compile pattern results re compiled search COPRO HORIZON 2000 HOR p
  • 具有连字符的 Oracle 正则表达式在 Windows 上给出的结果与在 Unix 上不同

    我有以下带有正则表达式的查询 select REGEXP REPLACE TEST 3304 V2 lt gt as REG from dual 当通过 SQL Plus 在Windows机器返回以下内容 SQL gt select REG
  • git 匹配多个单词的标签

    我们可以得到最后一个 git 标签 它以一个单词 例如 TEST 开头 如下所示 git describe tag dirty match TEST 我想知道如何获得最后一个以 word1 开头的标签orword2 例如测试OR跑步 我尝试
  • ruby 正则表达式匹配模式的多次出现

    我正在寻找构建一个 ruby 正则表达式来匹配模式的多次出现并将它们返回到数组中 模式很简单 即 两个左括号 一个或多个字符 后跟两个右括号 这就是我所做的 str Some random text lead first name and
  • 正则表达式最多匹配五个单词

    我有一个正则表达式 a zA Z 0 9 1 5 它验证该单词包含字母数字字符和少数特殊字符 并且长度不应超过5人物 如何使此正则表达式接受最多五个与上述正则表达式匹配的单词 a zA Z 0 9 1 5 s a zA Z 0 9 1 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
  • Golang 正则表达式在字符串之间替换

    我有一些可能采用以下形式的字符串 MYSTRING MYSTRING n MYSTRING n MYSTRING randomstringwithvariablelength n 我希望能够将其正则表达式为MYSTRING foo 基本上替
  • Javascript:删除字符串标点符号并拆分成单词?

    抱歉 如果之前有人问过这个问题 但我正在尝试从这样的字符串中获取单词数组 Exclamation Question Quotes Apostrophe Wasn t Couldn t Didn t 该数组应该看起来像这样 exclamati
  • Python 中的 grep 等价物是什么?

    假设我有一个文本文件 其中包含 我喜欢大象 这一行 如果我捕获所述文件并将其通过管道发送到 grep大象 我会得到整行 我喜欢大象 如何使用 re 在 Python 中实现此功能 我一直在尝试以下方法 test re search elep
  • 从字体到跨度(大小和颜色)和背面的正则表达式(VB.NET)

    我正在寻找一个正则表达式 可以将我的字体标签 仅具有大小和颜色属性 转换为具有相关内联CSS的span标签 如果有帮助的话 这将在 VB NET 中完成 我还需要一个正则表达式来实现相反的效果 下面详细说明的是我正在寻找的转换示例 font
  • Powershell 将单个字符串与多个正则表达式匹配?

    除了依次迭代每个正则表达式之外 是否有一种更 powershelly 的方式将单个字符串与正则表达式的数组 集合进行匹配 我真正想做的是这样的 database Name match includeRegexArray 考虑到 Powers
  • Python正则表达式非贪婪匹配

    这个问题来自 用Python自动化无聊的事情 一书 atRegex1 re compile r w 1 2 at atRegex2 re compile r w 1 2 at atRegex1 findall The cat in the
  • 如何使正则表达式匹配不区分大小写?

    我有以下正则表达式加拿大的邮政编码 http en wikipedia org wiki Postal codes in Canada ABCEGHJKLMNPRSTVXY 1 d 1 A Z 1 d 1 A Z 1 d 1 它工作正常 但
  • 使用正则表达式模式查找 -name 并使用 cp 替换文件名

    目前我正在使用该命令cron复制 data从源到目标路径 find source path name data exec cp target path 源码结构为 source path category1 001 data source
  • Java:正则表达式排除空值

    在问题中here https stackoverflow com questions 51359056 java regexp for a separated group of digits 我得到了正则表达式来匹配 1 到 99 之间的一
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试

随机推荐

  • GNU、GCC 和 MinGW 之间有什么区别?

    我得知 GCC 不仅是一个编译器c questions tagged c但也适用于许多其他语言 这是真的吗 如果是这样 那么它是如何完成的呢 GNU 不是编译器 它是一个操作系统和一组自由软件 旨在 类 Unix 而不使用 Unix GNU
  • 64位函数返回32位指针

    这个函数被埋在一个复杂的嵌套中 所以实际上找到原因可能超出了我所能要求的范围 但我想知道是否有人能够提供一些关于我如何调试它的提示 这是我遇到问题的代码的要点 func1 c somestruct func1 somestruct myst
  • iOS - 如何判断本地通知是否导致我的应用程序进入前台?

    我的应用程序委托中有代码 application didReceiveLocalNotification 方法来显示UI警报视图对于本地通知 每当我的应用程序位于前台时 如果本地通知到达时我的应用程序在后台运行 则用户会收到该通知 并且能够
  • 如何仅使用 HTML 在 mozilla firefox 中打开本地文件?

    我正在尝试在 ubuntu 机器上使用 html 打开 Firefox 本地磁盘上的文件 但是 我面临文件未找到错误 我的代码如下 a href home abc workspace logfile log LOG FILE a 我尝试使用
  • 无法从包含库的应用程序启动意图

    您好 我想启动一项位于连接的图书馆项目中的服务 所有相关课程都在图书馆 该服务是从位于库中的活动调用的 Intent serviceIntent new Intent serviceIntent setAction org example
  • 如何在两个 Pandas DataFrame 对象上执行 SQL 样式不相交或设置差异?

    我正在尝试使用 Pandas 来解决一个白痴 DBA 没有对现已崩溃的数据集进行备份的问题 因此我正在尝试查找两列之间的差异 由于我不会详细说明的原因 我使用的是 Pandas 而不是数据库 我想做的是 考虑到 Dataset A A B
  • 自动装配 Spring JPA 存储库的 @Primary 等效项

    我在应用程序中使用 Spring JPA 存储库和实体 现在 在该应用程序的某种风格中 我需要扩展我的一个实体并提供一个扩展存储库 对于我需要覆盖 扩展的所有其他 bean 我只需创建一个新的实现并使用 Primary 对其进行注释 以便它
  • Android - 如何检索货币汇率[重复]

    这个问题在这里已经有答案了 我正在尝试为 Android 开发一个简单的外汇应用程序 首先 我需要获取过去一年的货币汇率 有人可以建议我该怎么做吗 我查看了 Google Financh API 但找不到如何检索货币汇率 任何建议表示赞赏
  • Clojure 时间和日期库是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我找不到处理时间和日期的库http clojure org libraries http clojur
  • 每个 SQL Server 外键都应该有一个匹配的索引吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在 SQL Server 数据库中为每个外键都有一个索引有哪些优点 如果有的话 是的 这是一个很好的做法 请参阅此处 SQL Server 何时
  • React 在 prop 更新时重新渲染组件

    我的想法 理解是 只要 props 或状态发生变化 React 组件就会更新 所以我声明我的变量 let percentage width 10 并有一个setInterval运行这么长时间后更改该变量的函数 setInterval fun
  • MongoDB Compass 社区身份验证失败

    我刚刚创建了一个新的 MongoDB 帐户 现在尝试连接通过 MongoDB Compass 社区应用程序创建的免费集群 但显示 身份验证失败 错误 这是我到目前为止检查过的 在我的 MongoDB Clusters 部分 当我单击 Con
  • Sparklyr 无法看到在 Hive 中创建的数据库,反之亦然

    我在本地安装了 Apache Hive 并尝试通过 Rstudio sparklyr 读取表 我使用 Hive 创建了一个数据库 hive gt CREATE DATABASE test 我尝试使用以下 R 脚本读取该数据库 library
  • 为什么这种并行搜索和替换没有使用 100% 的 CPU?

    我有一个很长的推文列表 200 万条 我使用正则表达式来搜索和替换这些推文中的文本 我使用一个运行这个joblib 平行图 https joblib readthedocs io en latest parallel html joblib
  • 如何对 DefaultAzureCredential 方法进行单元测试

    我使用默认的 azure 凭据方法获取访问令牌 同时使用函数应用程序的托管标识获取访问令牌 我能够获取令牌 但现在我不确定如何对该方法进行单元测试 这是当前状态 private async Task RefreshTokenCache va
  • 如何在 SQL Server 2005 中查找谁锁定了谁

    我正在研究 SQL Server 2005 SP3 从活动监视器中 我注意到许多处理器被锁定在挂起模式 你知道如何找到谁锁定了我的进程吗 exec sp who 会告诉您哪些进程被哪些其他进程阻止 您还可以使用 exec sp lock 查
  • Capybara::ElementNotFound:无法找到文件字段“文件”

    我正在测试文件上传 即 CSV 在我的代码和浏览器 HTML 中 我找到了文件字段 但在测试时 水豚无法找到该文件字段 我努力尝试不同的方法 但无法解决问题 这里部分看起来像这样 add file box div msg h1 page h
  • Android OpenGL ES - 我无法使 gluLookAt/gluPerspective 工作

    以下文字有点长 因为我想确保有类似问题的人 例如谷歌这个页面可以轻松地跟踪确切的问题及其解决方案 但现在谈谈我的问题 我最近开始在 Android 智能手机上进行 OpenGL ES 编程 并在理解如何使用 gluPerspective 和
  • 如何在 Mac OS X 10.5.8 上安装 Bash >= 3.2.25?

    我正在关注 Michael Hartl 的 Rails 教程 到目前为止我已经安装了 Git 1 7 5 4 x86 64 我正在运行 OSX 10 5 8 并且我正在尝试安装 rvm 我运行以下命令后 curl kL get rvm io
  • 正则表达式:以任意顺序匹配特定字符,每个字符的出现次数不超过指定的次数

    我有一个字符列表 例如 o b c c d o f 如果字符串包含不在该列表中的字符 我不希望它成为匹配项 如果一个字符串包含的某个字符出现的次数多于该列表中该字符出现的次数 我不希望它成为匹配项 字符串中的字符可以按任何顺序出现 并且不必