Regex il più difficile per me. Ho bisogno della regex per sotto in Java
1) 17-08-15 11.04A &AD4 USFR EN 00*
My TRY:d[1-9]+-d[1-9]+-d[1-9]+s+d[1-9].d[1-9]+w+s+&+w+ds+w+s+w+s+d+
& e * >> È il primo problema e se esiste una regex migliore per quella sopra, suggerisci.
2)17-08-15 11.04A &AD4 USER 0002******** j? j? à?&AD4N
PROBLEMA>> ******* e?, &, `come includerli in regex.
Ho cercato su Google molto ma sono disponibili solo regex semplici. E gli strumenti stanno generando tutti i regex di tipo costante che prendono le stringhe come in reg ex come
16-09-14s+11.04As+&AD4s+USERs+ENs+00
Contiene tutto così com'è, quindi questo tipo di regex non mi è utile.
Grazie
risposte:
1 per risposta № 1Per cercare alcuni caratteri speciali (come & e *) devi scappare inserendo di fronte:
*
, &
.
1) Il tuo regex è sbagliato. Per quanto ho capito, il primo gruppo rappresenta la data, quindi il tuo regex funzionerà anche per tale data: 32-99-15
. Lo stesso vale per il tempo. Puoi verificarlo qui: https://regex101.com/r/tX1iD9/2
Ecco la regex per la parte di data e ora fino alla e commerciale 17-08-15 11.04A
:
(0[1-9]|[12]d|30)-(0[1-9]|1[0-2])-[0-9]{2}s(0d|1[1-2]).([0-5]d){1,2}(A|P)s&
Supporta 12 ore di tempo con A
o P
alla fine e alla data corretta, puoi provarlo qui: https://regex101.com/r/mF9dQ9/3
E per l'intera stringa puoi trovare regex qui: https://regex101.com/r/mF9dQ9/4
2) Regex per il secondo:
(0[1-9]|[12]d|30)-(0[1-9]|1[0-2])-[0-9]{2}s+(0d|1[1-2]).([0-5]d){1,2}(A|P)s&[A-Z]{2}ds+[A-Z]{4}s+(d|*){12}sw?sw?sà?&w{2}dw
https://regex101.com/r/eT8eY6/1