Ho bisogno di convalidare i numeri di serie. Per questo usiamo le espressioni regolari in C#, e un certo prodotto, parte del numero seriale è il "secondo da mezzanotte". Ci sono 86400 secondi in un giorno, ma come mi possono convalidare come un numero a 5 cifre in questa stringa ?:Espressione regolare dove parte della stringa deve essere il numero compreso tra 0-100
654984051-86400-231324
non posso usare questo concetto:
[0-8][0-6][0-4][0-0][0-0]
Perché allora 86399
non sarebbe valido Come posso superare questo? Voglio qualcosa di simile:
[00000-86400]
UPDATE
voglio chiarire che io sappia - e sono d'accordo con - il "non usare le espressioni regolari quando c'è un modo più semplice" scuola di pensiero. Jason's answer è esattamente come mi piacerebbe farlo, tuttavia questa convalida del numero di serie è per tutti i numeri seriali che passano attraverso il nostro sistema - non esiste attualmente alcun codice di convalida personalizzato per questi specifici. In questo caso Ho una buona ragione per cercare una soluzione regex.
Ovviamente, se non ce n'è uno, ciò rende innegabile la convalida personalizzata per questi particolari prodotti, ma volevo esplorare questa strada completamente prima di adottare una soluzione che richiede modifiche al codice.
Alcune persone, di fronte a un problema, pensano "Lo so, userò le espressioni regolari". Ora hanno due problemi. - Jamie Zawinski –
Non proprio vero, ma non riesco a ricordare il post del blog che ho letto su di esso. Ancora una buona citazione ... – RCIX
@benjamin Io non sono una di quelle persone, in realtà ho preso una decisione ragionevole e ragionevole per raggiungere le espressioni regex * in questo caso *. Preferirei non usarli, ma se ce n'era uno funzionante, sarebbe un cambiamento di configurazione. Se non c'è, e ho bisogno di scrivere un codice di convalida personalizzato, questo ha un impatto maggiore sul nostro sistema e comporta un sovraccarico maggiore. –