[英]Check if a String matches specific regular expression
我不太擅長正則表達式之類的東西,所以我需要幫助。 我必須檢查輸入值是否與特定的正則表達式格式匹配。 這是我要使用的格式25D8H15M
。 這里D
表示天數H
表示小時, M
表示分鍾。 我需要正則表達式來檢查字符串。 謝謝
這是編寫正則表達式的最簡單方法:
if (str.matches("(?!$)(\\d+D)?(\\d\\d?H)?(\\d\\d?M)?"))
// format is correct
這允許每個部分都是可選的,但是在開始時對輸入結束的負面展望意味着那里必須有一些東西。
請注意如何使用 java 您不必對輸入的開始 ( ^
) 和結束 ( $
) 進行編碼,因為String.matches()
必須匹配整個字符串,所以開始和結束是隱含的。
然而,這只是一個基本的正則表達式,因為99D99H99M
會通過。 有效格式的正則表達式為:
if (str.matches("(?!$)(\\d+D)?([0-5]?\\dH)?([0-5]?\\dM)?"))
// format is correct
這將小時和分鍾限制為0-59
,允許為0-9
范圍內的值提供可選的前導零。
簡化的正則表達式可以是:
^\\d{1,2}D\\d{1,2}H\\d{1,2}M$
嘗試,
String regex = "\\d{1,2}D\\d{1,2}H\\d{1,2}M";
String str = "25D8H15M";
System.out.println(str.matches(regex));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.