如何使用正则表达式匹配X和Y之间的数字?

2024-07-03

我想用 RegExp 匹配 X 和 Y 之间的数字。这可能吗?

([0-9]+) 将匹配任何数字,我该如何匹配 110 和 2234 之间的数字?


根据生成正则表达式以匹配任意数字范围 http://code.activestate.com/recipes/534137/,并在为您的示例生成这样的正则表达式之后正则表达式_For_Range https://web.archive.org/web/20151029043426/http://utilitymill.com/utility/Regex_For_Range:

\b0*(1[1-9][0-9]|[2-9][0-9]{2}|1[0-9]{3}|2[01][0-9]{2}|22[0-2][0-9]|223[0-4])\b

就可以了。

该过程将是(仍然遵循正则表达式生成器):

首先,分成相等长度的范围:

110 - 999
1000 - 2234

其次,分解产生简单正则表达式的范围:

110 - 199
200 - 999
1000 - 1999
2000 - 2199
2200 - 2229
2230 - 2234

将每个范围转换为正则表达式:

1[1-9][0-9]
[2-9][0-9]{2}
1[0-9]{3}
2[01][0-9]{2}
22[0-2][0-9]
223[0-4]

折叠 10 的相邻幂: 1[1-9][0-9] [2-9][0-9]{2} 1[0-9]{3} 2[01][0-9]{2} 22[0-2][0-9] 223[0-4]

组合上面的正则表达式会产生:

0*(1[1-9][0-9]|[2-9][0-9]{2}|1[0-9]{3}|2[01][0-9]{2}|22[0-2][0-9]|223[0-4])

接下来我们将尝试使用树分解常见前缀:
根据正则表达式前缀解析成树:

. 1 [1-9] [0-9]
+ [0-9]{3}
+ [2-9] [0-9]{2}
+ 2 [01] [0-9]{2}
+ 2 [0-2] [0-9]
+ 3 [0-4]

将解析树转换为正则表达式会产生:

0*(1([1-9][0-9]|[0-9]{3})|[2-9][0-9]{2}|2([01][0-9]{2}|2([0-2][0-9]|3[0-4])))

我们选择较短的一个作为我们的结果。

\b0*(1[1-9][0-9]|[2-9][0-9]{2}|1[0-9]{3}|2[01][0-9]{2}|22[0-2][0-9]|223[0-4])\b
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用正则表达式匹配X和Y之间的数字? 的相关文章

  • 整数或双精度值的正则表达式

    我正在尝试创建一个正则表达式来接受整数和双精度值 正值和负值 这就是我所拥有的 d d d 在此之前 我将其标记为重复问题 所有问题都已签入 所以我最终遇到了相同的问题 5 and 5 gt true 5 00 and 5 00 gt tr
  • Sql Server Management Studio 的完整正则表达式语法

    是否有 Sql Server Management Studio 中使用的正则表达式语法的完整描述 例如 必须有一种方法可以进行负向查找 但查找 替换对话框没有列出 SSMS 版本 2005 2012 实际上只是修改 自定义的 Visual
  • 如何避免正则表达式中除空格之外的所有特殊字符?

    我正在使用行过滤器构建自动完成编辑器 并且正在使用正则表达式删除特殊字符 但空格也被删除 Regex Regex Replace currentText 0 9A Za z 我只想忽略空格但替换剩余的特殊字符 只需在否定字符类中添加空格即可
  • 一系列 unicode 点的正则表达式 PHP

    我正在尝试从字符串中删除所有字符 除了 字母数字字符 美元符号 下划线 代码点之间的 Unicode 字符U 0080 and U FFFF 通过这样做 我得到了前三个条件 preg replace a zA Z d foo 我如何去满足第
  • 解析字符串:提取单词和短语 [JavaScript]

    我需要在以空格分隔的术语列表中支持确切的短语 用引号引起来 因此 用空格字符分割相应的字符串已经不够了 Example input foo bar lorem ipsum baz output foo bar lorem ipsum baz
  • 用于标记查询的 JavaScript 正则表达式

    您好 我偶然发现了一个与正则表达式相关的问题 但我无法解决 我需要对查询进行标记 将查询分成几部分 假设以下一个为例 These are the separate query elements These are compound comp
  • 比赛结束后如何使用流找到物品?

    使用 Java 流 可以轻松找到与给定属性匹配的元素 例如 String b Stream of a1 b2 c3 filter s gt s matches b findFirst get System out println b b 生
  • 各种日期格式的正则表达式

    我是正则表达式的新手 我想知道是否有人可以提供帮助 我什至不确定正则表达式是否是我想做的事情的最佳选择 我有一个正在查看的字符串数组 我想找到数组中与各种日期格式匹配的所有项目 以下是我尝试匹配的示例格式 2012 年 4 月 1 日 当天
  • Perl 电话号码正则表达式

    抱歉问这么简单的问题 我还是一个没有经验的程序员 我在工作中偶然发现了一些旧 Perl 代码中的电话号码匹配正则表达式 如果有人能准确解释它的含义 我的正则表达式技能严重缺乏 我会很高兴 if value space 0 9 0 9 spa
  • 将整数 (n) 替换为重复 n 次的字符

    假设我有一个字符串 3 我想把它变成 基本上用重复出现的整数替换 相当于整数值 我怎样才能实现这个目标 我知道反向引用可以与str replace var str 3 str replace 0 9 g x 1x gt x3x 我们可以使用
  • 正则表达式 - 可变长度的匹配数字

    我正在尝试解析一份到处都是参考号的文档 文字文字文字 4 2 更多令人难以置信的文字 4 3 稍后 222 115 还有一些文字 引用总是用方括号括起来 并且两者之间总是有一个冒号 我写了一个表达式来找到它们 0 9 0 9 然而 当你遇到
  • awk 如何找到带括号的变量的匹配项?

    我有一个文件some file txt 我想在其中找到匹配线name方括号内 必须完全匹配 因为某些单词可能会重复 例如foo在下面的例子中 文档内容如下所示 foo url foo Foo url bar Bar url fizz buz
  • find -regex 比 find | 慢grep

    我有一个使用正则表达式查找文件的脚本 代码如下 find dir grep regex 该脚本运行有点太慢 我想优化它 搜索需要一些时间来执行 我希望从中获得更好的性能 我尝试过这个尝试 find dir regex regex 我预计结果
  • 使用正则表达式在 Pandas Series 的各个单元格内分隔逗号分隔的值

    我有一个来自数据库的 csv 文件 我已将其转换为我正在尝试清理的 Pandas DataFrame 问题之一是多个值已输入到需要拆分的单个单元格中 复杂的因素是有一些字符串注释 也带有逗号 需要保持完整 下面的示例以系列形式说明了该问题
  • 带转义引号的带引号字符串的正则表达式

    如何获取子字符串 It s big problem 使用正则表达式 s function return It s big problem 适用于 Regex Coach 和 PCRE Workbench JavaScript 测试示例 va
  • 名字和姓氏的正则表达式

    出于网站验证目的 我需要名字和姓氏验证 对于名字 它只能包含字母 可以是多个带有空格的单词 并且最少为 3 个字符 但最多为 30 个字符 不应验证空字符串 例如Jason jason 杰森 史密斯 杰森 史密斯 JASON 贾森 史密斯
  • PHP 正则表达式:按未转义分隔符分割

    我能够以格式分割字符串key value 使用以下代码 inside key1 value1 key2 value2 key3 value3 preg match all s inside pairs 我想做的是通过引入转义字符来允许值中出
  • 如何转义字符串以在 Boost Regex 中使用

    我刚刚开始了解正则表达式 并且正在使用 Boost Regex 库 我需要使用包含特定 URL 的正则表达式 但它令人窒息 因为显然 URL 中存在为正则表达式保留的字符 需要转义 Boost 库中是否有任何函数或方法可以转义此类用途的字符
  • 如果字符串包含所有单词或条件,则正则表达式匹配

    我正在使用 php 和 regex 制作一个简单的文字游戏 如果一个字符串必须需要两个或更多单词 我们如何搜索它 lets say cat dog play x 2 if 猫狗玩玩 pass 你好 一只正在玩耍的猫狗 not pass 只有
  • 保存模式后立即替换数字

    搜索到的模式看起来像text9 我寻找 text 9 我想替换为 15这样我就能得到text5但它只是给了我text 除数字外 任何其他字符都有效 事实证明 PCRE 风格的反向引用不起作用 所以 你必须使用 015替换为第一个捕获组捕获的

随机推荐

  • Android studio无法打开监视器(DDMS)

    我无法在android studio中打开监视器 ddms 出现以下错误 必须有 Java 运行时环境 JRE 或 Java 开发工具包 JDK 才能运行 Monitor 搜索以下位置后未找到 Java 虚拟机 C Android Stud
  • Android studio无法打开监视器(DDMS)

    我无法在android studio中打开监视器 ddms 出现以下错误 必须有 Java 运行时环境 JRE 或 Java 开发工具包 JDK 才能运行 Monitor 搜索以下位置后未找到 Java 虚拟机 C Android Stud
  • Spring如何管理Hibernate会话生命周期

    我们团队的Java EE项目中使用了Spring 底层ORM使用了hibernate transactionManager 设置如下
  • Spring如何管理Hibernate会话生命周期

    我们团队的Java EE项目中使用了Spring 底层ORM使用了hibernate transactionManager 设置如下
  • CoreBluetooth[警告] 未知错误:iPhone 5 上的 14

    我能够使用 BLE 连接到外围设备 但在读取一些特征后不久 框架返回 CoreBluetooth 警告 未知错误 14 并且外围设备已断开 查看 BT Core V4 0 规范 我不确定该错误意味着什么 14是十六进制值吗 根据规范 这是否
  • CoreBluetooth[警告] 未知错误:iPhone 5 上的 14

    我能够使用 BLE 连接到外围设备 但在读取一些特征后不久 框架返回 CoreBluetooth 警告 未知错误 14 并且外围设备已断开 查看 BT Core V4 0 规范 我不确定该错误意味着什么 14是十六进制值吗 根据规范 这是否
  • Django 一对一关系查询集

    我有以下两个模型 class A models Model name models CharField age models SmallIntergerField class B models Model a models OneToOne
  • Django 一对一关系查询集

    我有以下两个模型 class A models Model name models CharField age models SmallIntergerField class B models Model a models OneToOne
  • SQL 查询、执行计划和“并行性”

    因此 我 仍然 正在经历一些缓慢的遗留 SQL 视图 用于计算 有时 大量数据的一些平均值和标准差 我最终得到的是视图连接视图连接视图等 所以我想我会检查查询的执行计划 它立即提示缺少索引 然后我实施了该索引 但它仍然慢得令人难以忍受 慢到
  • SQL 查询、执行计划和“并行性”

    因此 我 仍然 正在经历一些缓慢的遗留 SQL 视图 用于计算 有时 大量数据的一些平均值和标准差 我最终得到的是视图连接视图连接视图等 所以我想我会检查查询的执行计划 它立即提示缺少索引 然后我实施了该索引 但它仍然慢得令人难以忍受 慢到
  • 使用 Web API 向许多用户发送 DM 的正确方法

    我正在创建一个 Slack 应用程序 在一个拥有数千名用户的工作区中 我想要对其中不共享特定频道的 数百名 用户的子集进行 DM 我在 Web API 中没有看到任何 批处理 方法 所以我想知道哪种方法是实现此目的的最佳方法 我应该一一循环
  • 使用 Web API 向许多用户发送 DM 的正确方法

    我正在创建一个 Slack 应用程序 在一个拥有数千名用户的工作区中 我想要对其中不共享特定频道的 数百名 用户的子集进行 DM 我在 Web API 中没有看到任何 批处理 方法 所以我想知道哪种方法是实现此目的的最佳方法 我应该一一循环
  • 禁用 Blazor 中的后退按钮

    在基于 Blazor 的 SPA 中 您必须能够阻止用户使用浏览器中的后退按钮返回 但是 我找不到任何有关如何执行此操作的信息 在经典的 ASPX 中 这相对简单 但如何在 Blazor 应用程序 页面上做到这一点 我在视图上看到过 NoC
  • 禁用 Blazor 中的后退按钮

    在基于 Blazor 的 SPA 中 您必须能够阻止用户使用浏览器中的后退按钮返回 但是 我找不到任何有关如何执行此操作的信息 在经典的 ASPX 中 这相对简单 但如何在 Blazor 应用程序 页面上做到这一点 我在视图上看到过 NoC
  • 在 64 位 Linux 操作系统上编译 32 位 Qt 应用程序

    我知道以前曾在这里问过类似的问题 但我的情况略有不同 我有 64 位操作系统 我安装了 i686 和 x86 64 qt 开发包 我想编译一个 32 位二进制文 件 我已经添加了 QMAKE CXXFLAGS m32 到 pro 文件 然而
  • 在 64 位 Linux 操作系统上编译 32 位 Qt 应用程序

    我知道以前曾在这里问过类似的问题 但我的情况略有不同 我有 64 位操作系统 我安装了 i686 和 x86 64 qt 开发包 我想编译一个 32 位二进制文 件 我已经添加了 QMAKE CXXFLAGS m32 到 pro 文件 然而
  • SPARK:如何监控Spark集群的内存消耗?

    很抱歉问了这个基本问题 但我自己无法弄清楚 我试图在 Spark UI 上弄清楚每个工作人员和驱动程序有多少可用内存和使用量 有没有什么简单直接的方法simple如何监控这些信息 我的目标是根据我的数据在工人和司机上的占用量来决定我的持久化
  • SPARK:如何监控Spark集群的内存消耗?

    很抱歉问了这个基本问题 但我自己无法弄清楚 我试图在 Spark UI 上弄清楚每个工作人员和驱动程序有多少可用内存和使用量 有没有什么简单直接的方法simple如何监控这些信息 我的目标是根据我的数据在工人和司机上的占用量来决定我的持久化
  • 如何使用正则表达式匹配X和Y之间的数字?

    我想用 RegExp 匹配 X 和 Y 之间的数字 这可能吗 0 9 将匹配任何数字 我该如何匹配 110 和 2234 之间的数字 根据生成正则表达式以匹配任意数字范围 http code activestate com recipes
  • 如何使用正则表达式匹配X和Y之间的数字?

    我想用 RegExp 匹配 X 和 Y 之间的数字 这可能吗 0 9 将匹配任何数字 我该如何匹配 110 和 2234 之间的数字 根据生成正则表达式以匹配任意数字范围 http code activestate com recipes