正则表达式 - 识别分数

2023-12-09

我需要使用正则表达式从菜谱数据库中的表单字段中识别分数。 成分将被输入到由两部分组成的表单字段中。第一字段是数量,第二字段是成分。然后,我需要将字段一分解为其小数部分以输入到数据库中。

可能的条目包括: 1、1/2、1 1/2 以及前面任何一个带有文字的内容,例如 1 杯或 1/2 汤匙。 我预见的最难的是:[2 28 盎司。罐] 其中 2 是数字,28 盎司。罐头就是这个词。

我已经发现: (\b[0-9]{1,3}(?:,?[0-9]{3})*(?:.[0-9]{2})?\b) 哪种作品。我对正则表达式完全陌生,所以我只进行猜测和检查,而且我很难让它为我工作。

问题#1:我还需要识别单词部分。单词部分也可以是多个单词,例如 2 个大罐头,其中大罐头就是单词部分。上面的正则表达式很好地识别了数字,但我无法找到一种方法来获取表单字段的其余部分。例如,1 1/2 汤匙给了我 1,1,2,但仅此而已,我还需要汤匙。我尝试使用这个正则表达式并使用 len 来削减原始内容,减去前面的分数,但遇到问题,因为 1 / 2 和 1/2 都是允许的,所以无法弄清楚要减去多少个点(1 / 2应该从字符串的前面减去 6,1/2 应该从字符串的前面减去 4,只是看看 1,2 的正则表达式结果,我不知道要减去多少)。

问题 #2:这并不是那么重要,但是关于如何识别 [2 28 盎司罐] 问题有什么想法吗?上面的正则表达式取出 2,28,这是不正确的,它应该只取出 2 个,然后剩下的(28 盎司罐)将是问题 1 的解决方案有望找到的另一部分。


这是一个正则表达式,它将匹配混合数字、整数和条目的其余部分(成分,希望与任何无关的数字):

^((\d+( \d+/\d+)?)|(\d+/\d+))( (.+))?$

例如,如果有2 28 ounce cans它会匹配:

group 1: 2
group 2: 2
group 3: 
group 4: 
group 5:  28 ounce cans
group 5: 28 ounce cans

您关心的组是 1 和 5。Group 1将始终包含金额(作为数字、分数或带分数的数字)并且group 6总是有剩余的文本(成分)。

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

正则表达式 - 识别分数 的相关文章

随机推荐

  • 如何粘贴而不覆盖寄存器

    有谁知道一种方法可以粘贴到视觉上选择的区域而不将选择放置在默认寄存器中 I know I can solve the problem by always pasting from an explicit register But it s
  • IntelliJ Idea 使用错误的 git

    我无法让 git 与 IntelliJ IDEA 2022 3 1 终极版 一起使用MacOS Monterey 12 5 芯片 Apple M1 Pro git 可执行文件的路径 usr local bin git IntelliJ Id
  • 使用 Freemarker 解析 Spring MVC 中的视图 - 包括 jsp 页面

    使用 FreemarkerServlet 时 可以将 JSP 页面与 Freemarker 内容一起包含在内 但是 我在 Spring MVC 应用程序中使用 Freemarker 作为视图解析器 因此不使用 FreemarkerServl
  • 正则表达式搜索并替换为可选的复数

    我是正则表达式的新手 所以希望一些专家能够对我的问题打哈欠并给出一个简单的答案 我试图查找并替换以某个字母开头的单词 如果它们是复数 则保留它们的复数 因此 例如 我想将 boy 一词替换为 band 将 boys 替换为 bands te
  • TypeScript 导出和导入 尚未加载上下文的模块名称:_。使用 require([])

    当我尝试在浏览器中运行应用程序时 我在调试控制台窗口中收到以下消息 Module name Person has not been loaded yet for context Use require 当然 如果合并 ts 文件的内容 一切
  • PHP 安装程序脚本 [重复]

    这个问题在这里已经有答案了 可能的重复 我如何为网站创建安装程序 PHP mysql 我正在寻找使用 PHP 为稍微复杂的 Web 应用程序创建一个功能齐全的安装程序 基本上 您访问 URL setup php 系统会询问您一系列问题 在此
  • 如何将 cp1251 字节数组转换为 utf8 字符串?

    我们在手机上没有可用的 cp1251 代码页 因此 new String data cp1251 doesn t work 我们需要一个具有类似签名的函数 String ArrayCp1251toUTF8String byte data 首
  • JavaScript:我应该如何生成大量 HTML? [复制]

    这个问题在这里已经有答案了 可能的重复 是否有使用 javascript 生成 html 的最佳实践 我想用 JavaScript 生成网站的大部分内容 最简单的方法是形成一个包含所有 HTML 的大字符串 div span some te
  • MySQL - 如何限制每个 ID 一个结果?

    我有以下查询 它创建一个视图表 显示商店中最高的销售人员以及其他一些详细信息 CREATE OR REPLACE VIEW sales data AS SELECT s storename AS Store e employee name
  • event.preventDefault() 在 Chrome 和 Opera 中不起作用

    我正在使用 jQuery 验证插件 1 9 0 和 jQuery 1 7 2 我希望使用 jquery 验证插件来验证我的表单 它在 Firefox 20 0 1 和 IE 10 中运行良好 但在 Chrome 26 0 1410 64 m
  • 如何使用代号一存储?

    我正在尝试将我的 LWUIT 应用程序移植到代号一 我已经在 LWUIT 中使用了 RMS 现在显然我必须将其转换为存储 我不明白存储类在代号一中是如何工作的 代号一的文档也没有任何相关内容 1 存储文件的结构是怎样的 gt 在 J2ME
  • 选择“今天日期”的查询不起作用

    我试图从表文档中选择日期是今天的日期 我正在使用 Codeigniter 但它只显示这些没有时间的文档 我的意思是数据库日期中的位置是 2015 06 25 00 00 00 但它不会显示有小时的这些文档 例如 2015 06 25 08
  • IBM Worklight Android 4.4 问题,JSON Store 停止工作

    我刚刚将 N4 升级到 Kitkat 并测试了一些使用 IBM Worklight 开发的旧应用程序 让我震惊的是JSON 存储停止工作 我正在提交以下日志 请检查 还有其他人面临同样的问题吗 11 27 11 48 03 078 I js
  • 为索引列表生成 CREATE 脚本

    作为排序规则更改练习的一部分 我有一个索引列表 122 需要删除然后重新创建 如何重新创建这些索引 而不必每次都通过 GUI 并将其编写脚本到查询窗口 我的索引列表是从此脚本获取的 WITH indexCTE AS SELECT Table
  • Elasticsearch:小时分钟秒映射返回空数据

    下面是我为搜索字段创建的映射 PUT sample mapping properties webDateTime1 type date format dd MM yyyy HH mm ss dd MM yyyy hour minute se
  • 将数据放入 gridview 的第二行

    我正在使用 foreach 循环将数据插入到 gridview 中 如下所示 foreach GridViewRow row in grvbillDetail Rows row text row text row int row int 我
  • Travis 与 Firebase 部署 TypeError:this.stream.clearLine 不是函数

    我正在尝试使用 Travis 构建和部署 NodeJs Python 应用程序 这大约是文件夹结构 所有内容都属于同一个存储库 main angular2 client dist node modules django server ser
  • 如何在Python中调用超级构造函数?

    class A def init self print world class B A def init self print hello B output hello 在我使用过的所有其他语言中 超级构造函数都是隐式调用的 如何在 Pyt
  • 上传前获取文件大小、图片宽度和高度

    在上传到我的网站之前 如何使用 jQuery 或 JavaScript 获取文件大小 图像高度和宽度 多张图片上传并带有信息数据预览 Using HTML5 和File API 使用示例URL API 图像源将是表示 Blob 对象的 UR
  • 正则表达式 - 识别分数

    我需要使用正则表达式从菜谱数据库中的表单字段中识别分数 成分将被输入到由两部分组成的表单字段中 第一字段是数量 第二字段是成分 然后 我需要将字段一分解为其小数部分以输入到数据库中 可能的条目包括 1 1 2 1 1 2 以及前面任何一个带