簡體   English   中英

檢查字符串是否匹配特定的正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM