java正则表达式怎么写成能够匹配24小时机制的时间

2019-03-25 13:37|来源: 网路

public class TestRep4
{

	public static void main(String[] args)
	{
		String rep = "(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$";
		
		Pattern p = Pattern.compile(rep);
		
		//前面有一空格,23点能匹配
		String s = " 23:23:21";
		
		//14点就不匹配了
		String s2 = " 14:12:23";
		
		System.out.println(p.matcher(s).matches());
		System.out.println(p.matcher(s2).matches());
	}
}



怎么写24小时都能够匹配呢?

相关问答

更多
  • java正则表达式[2023-08-29]

    ^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明: "^The": 开头一定要有"The"字符串; "of despair$": 结尾一定要有"of despair" 的字符串; 那么, "^abc$": 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配。 "notice": 匹配包含notice的字符串。 你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式) 可以出现在被检验字符串的任何地方,你没有把他锁定到两边。 接着,说说 '*', ...
  • 同打击,而且你输入的时间肯定是小于当前时间的,不用写程序判断了,这个是基本逻辑。 理解错了你个意思,帮你写个代码。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=" http://www.w3.org/1999/xhtml"> <head> <m ...
  • java正则表达式[2022-01-30]

    ^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明: "^The": 开头一定要有"The"字符串; "of despair$": 结尾一定要有"of despair" 的字符串; 那么, "^abc$": 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配。 "notice": 匹配包含notice的字符串。 你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式) 可以出现在被检验字符串的任何地方,你没有把他锁定到两边。 接着,说说 '*', ...
  • /\d{4}-\[01]\d-[0123]\d\s{1,2}[012]\d:[0-6]\d/ 这是精确匹配 其实真正使用时不用这么精确。可以用: /\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}/
  • System.out.println(s.matches("[12]"));
  • 您真正需要做的就是使复数可选,并添加一些单词边界标记。 尝试: \b((\d+(\.\d+)?)\s*(h|hr|hrs?|hours?))?(\s*(\d+)\s*(m|min|mins?|minutes?))?\b All you really need to do with yours is make the plural s optional, and add some word boundary tokens. Try: \b((\d+(\.\d+)?)\s*(h|hr|hrs?|hours? ...
  • 它实际上匹配 23:10:7和23:10:6 ,但由于你没有在字符串末尾使用行尾元字符$ ,它将处理后面的任何内容。 egrep '^(2[0-3]|1[0-9]|0[0-9]|[^0-9][0-9]):([0-5][0-9]|[0-9]):([0-5][0-9]|[0-9])$' test.txt 换句话说,如果匹配的数字是该行的最后一位,也就是说,如果后跟$ ,则应该只允许字符串末尾的[0-9] 。 另一种选择是,如果小于10,则强制最后一个数字为0-填充,即代替[0-9]使用0[0-9] 。 这将匹 ...
  • 如果您只想接受仅由HH:MM模式组成的行 ,那么您可以使用行首和行尾锚点,如下所示: '/^([01][0-9]|2[0-3]):([0-5][0-9])$/' 如果您想要找到与HH:MM匹配的单词 ,那么您可以使用单词边界字符,如下所示: '/\b([01][0-9]|2[0-3]):([0-5][0-9])\b/' 第一个匹配“04:20”,但不是“04:20 am”,也不是“04:20 am”。 第二个匹配“04:20”或“04:20”部分“04:20 am”,但不是“04:20 am”。 If ...