Ratkaistu: ajan regex-kuvio

Viimeisin päivitys: 09/11/2023
Kirjoittaja: Java SourceTrail

Regex tai säännöllinen lauseke on merkkijono, joka muodostaa hakukuvion. Tätä mallia voidaan käyttää suorittamaan erilaisia ​​tehtäviä, kuten muun muassa validointia, sovittamista ja korvaamista. Javassa regex on olennainen työkalu, jota käytetään merkkijonojen käsittelyssä. Tässä artikkelissa tarkastellaan, kuinka luodaan säännöllinen aikalausekemalli.

Tehtävänä on rakentaa regex-malli, joka voi vahvistaa tavanomaisen 12 tunnin muotoisen ajan, kuten '12:00 AM' tai '01:45 PM'.

public class Main {
    public static void main(String[] args) {
        // Test the pattern
        System.out.println("12:30 PM".matches("^((1[0-2]|0?[1-9]):([0-5][0-9])\s?([AaPp][Mm]))$"));  // returns true
    }
}

Tämä malli `^((1[0-2]|0?[1-9]):([0-5][0-9])\s?([AaPp][Mm]))$` on rakennettu seuraavilla perusteilla:
– `1[0-2]|0?[1-9]`: Tämä kuvion osa tarkistaa tunnin. Se tunnistaa kaikki numerot 01-09 ja 10-12. '0?' tarkoittaa, että etunolla on valinnainen.
– `:` tämä on kirjaimellinen symboli, joka vastaa syötteen kaksoispistettä.
– `[0-5][0-9]`: Tämä osa tarkistaa minuutit. Se hyväksyy minkä tahansa numeron väliltä 00-59.
– `\s`: Vastaa välilyöntiä.
– `[AaPp][Mm]` – Tämä osa tarkistaa joko AM tai PM. Tämä mahdollistaa sen, että syöte hyväksyy sekä pienet että isot kirjaimet.

Tämä kuvio takaa lopulta täydellisesti muotoillun 12 tunnin ajan.

Java ja Regex


RFID lukija NFC lukija Jaava kieli on sisällyttänyt regexin 1.4-versiosta lähtien. Regex-toimintojen helpottamiseksi Java kehitti paketin "java.util.regex", joka sisältää kolme luokkaa: "Pattern", "Matcher" ja "PatternSyntaxException". Luokka "Pattern" yksinkertaistaa säännöllisten lausekkeiden aloittamista, kun taas luokka "Matcher" on välttämätön täsmäytystoimintojen suorittamiseen. Lopuksi PatternSyntaxException, IllegalArgumentExceptionin alaluokka, tarkoittaa mitä tahansa syntaksivirhettä säännöllisen lausekkeen mallissa.

  • `Pattern.compile(String regex)`: Tämä Pattern-luokan staattinen menetelmä kokoaa säännöllisen lausekkeen ja määrittää sen kuviolle.
  • `Pattern matcher(CharSequence input)`: Tämä ilmentymämenetelmä luo täsmääjän, joka vastaa säännölliseen lausekkeeseen syötteeseen.

Regex-mallien salaus

Ahne regex kuviot voivat aluksi näyttää pelottavilta erikoismerkkien runsaan käytön vuoksi. Tarkempi tarkastelu voi kuitenkin tulkita minkä tahansa kuvion:
– '^' on ankkurimerkki, joka ilmaisee rivin alun. '$' tarkoittaa loppua. Siten ne yhdessä varmistavat täydellisen merkkijonovastaavuuden eivätkä vain osamerkkijonoa.
– '1[0-2]|0?[1-9]' vastaa mitä tahansa numeroa väliltä 01-09 tai 10-12. '|':lla regex joko ottaa vasemman tai oikean operandin.
– '[0-5][0-9]' on numeroalue, joka vastaa mitä tahansa numeroa väliltä 00-59.
– 's' vastaa mitä tahansa välilyöntiä.
– Hakasulkeet '[ ]' määrittelevät merkkiluokan, jolloin voit listata useita vastaavia merkkejä.

Näiden yksittäisten rakennuspalikoiden ymmärtäminen avaa koko maailman kuvioiden sovitusmahdollisuuksia, mikä tekee regexistä tehokkaan työkalun minkä tahansa kehittäjän työkalupakkissa.

Related viestiä: