java - 检查 Java 字符串中是否存在时间

标签 java regex string time jsoup

我有一个字符串变量,其中包含一些带有时间的文本。 例如,

// string str looks like this
String str = "XYZ SuperMarket 10.00AM - 10.00PM"
  1. 有没有一种方法或库可以用来检查这个字符串
    由时间组成(类似于 Jsoup 或 Regex)?

  2. 我想修剪时间内容并将其存储在名为“时间”的不同字符串中。真的可以这样处理字符串吗 方式。

最佳答案

我没有 Java 编程知识,因此无法提供用于此任务的 Java 代码。

但我可以提供以下正则表达式:

((?:[01][0-9]|[0-9])(?:[.:][0-5][0-9]){0,2} ?[AP]M)
整个表达式开头和结尾的

(...) 标记整个找到的字符串,可能需要将找到的字符串放入字符串变量中。

(?:[01][0-9]|[0-9]) 是 OR 表达式的非标记组。此 OR 表达式可查找 00 到 19 范围内的 2 位数字,或仅查找 0 到 9 范围内的单个数字。(是的,大于 12 的数字也会匹配,但这重要吗?我想,它不重要。保留它简单意味着让它变得更快。)

(?:[.:][0-5][0-9]){0,2} 是一个非标记组,应用于字符串以搜索 0、1 或2次。它与分钟和秒相匹配,其间的分隔符可以是点或冒号。分钟/秒必须有 00 到 59 范围内的 2 位数字。(所以这个表达式不适用于值为 60 的闰秒,但我很确定您从未见过带有闰秒的时间。)时间字符串可以仅包含小时,也可以包含小时+分钟,或者包含小时+分钟+秒。由于我从未见过一小时后带有一位数分钟或秒的时间字符串,因此对两位数分钟/秒的限制应该不是问题。

 ? 匹配单个空格,该空格可能但大多数不存在于时间字符串中。

[AP]MAMPM 匹配,因为这看起来是您在搜索字符串中期望的时间格式。

注意:有数十种不同的时间格式。因此,检查字符串中所有可能的时间格式将需要大量正则表达式。

关于java - 检查 Java 字符串中是否存在时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24227968/

相关文章:

ruby-on-rails - Ruby:如何将正则表达式拆分为多行?

C# 找到带有部分键字符串的 WebCache?

string - 使用 string 检查字符串列表?

string - 如何将大的 lua 字符串分成小字符串

c# - 从字符串列表中选择随机字符串的更好方法

java - 在 Play Framework 中混合使用 scala 和 java

java - 在 Java 中的 Process.destroy() 之后,stderr/stdout 流会发生什么变化?

regex - s/\G/0/g 是什么意思?

java - 错误 : Can't find or load main class when using Java command after compiling a . Java 文件包含多个类

java - 调试java银行账户程序(1个错误)