当前位置: 首页 > 知识库问答 >
问题:

匹配日、小时、分钟、秒的java - regex模式

皇甫学海
2023-03-14

我有一个包含大量数据的文本文件,其中一些是天、小时、分钟和秒组合的时间。下面列出了示例。

例如:

  • 2天3小时24分16秒
  • 1天4分3秒
  • 4小时17分56秒
  • 4小时17秒
  • 2小时3分钟
  • 3分15秒
  • 45秒

我试图将所有提到的时间替换为一个通用字符串,如“TimeString”。我已经编写了自己的正则表达式,但它并不像预期的那样工作

\\d(天)?(,\\d)?(小时)?(,\\d)?(分钟)?(,\\d)?(秒)?

因此,随着时间的推移,所有的数字都会被替换。例如,如果显示“26个订单”,它将被替换为不应该出现的“时间字符串订单”

共有1个答案

宋建柏
2023-03-14

你可以用

\d+\s*(?:day|hour|minute|second)s?(?:\s*,\s*\d+\s*(?:day|hour|minute|second)s?)*

查看regex演示

 类似资料:
  • 我刚刚开始学习java,我有一个问题,似乎有一个简单的答案。。。

  • 或者更好的方法是遍历它,为参数的每个索引获取TRUE或FALSE标志 我只知道如何使用matcher.find()进行循环,如果有任何帮助,我将不胜感激

  • 问题内容: 我需要将秒转换为“小时:分钟:秒”。 例如:“ 685”转换为“ 00:11:25” 我该如何实现? 问题答案: 您可以使用以下功能:

  • 问题内容: 我一直在尝试将秒值(在BigDecimal变量中)转换为editText之类的字符串,例如“ 1小时22分33秒”或类似的内容。 我已经试过了: (我有一个roundThreeCalc值,以秒为单位,所以我尝试在这里进行转换。) 然后,将editText设置为sequnceCaptureTime String。但这没有用。每次都强制关闭该应用程序。我完全不在这里,我们将不胜感激。祝您编

  • 因此,我试图制作一个程序,可以将s从输入转换为h、m和s。到目前为止,我的代码如下所示: 好的,所以我必须将s,m,h初始化为0,因为如果不是的话,我在if语句中遇到了问题,所以我把它设置为0,因为我可以稍后更改:)好的。所以现在这个程序的问题是,如果我输入3603,我会得到这个输出:3603s=1H60M3603s,如果我输入3600,我会得到:3600s=1H60M3600s,但输出应该分别是

  • 这个问题我已经研究了一段时间,但我只能得到秒数,下面是给我的说明:编写一个程序,从代表纳秒数的标准输入中读取一个非负整数。然后,程序编写一行输出,给出等效的天、小时、分钟、秒、毫秒、微秒和纳秒的数量。例如,输入为123456789123456789。则输出为:123456789123456789纳秒等于1428天、21小时、33分钟、9秒、123毫秒、456微秒和789纳秒。这是我写的: }