In effetti, le espressioni regolari si possono tranquillamente considerare un linguaggio a sé stante.
E' possibilissimo, anche se è probabile che nel tuo caso tu debba fare uso di più espressioni regolari.
Andando per ordine, potresti iniziare con qualcosa del genere:
[\w\.\s]+(?<VER>\d\.\d)
L'espressione consente di "matchare" tutte le occorrenze di una stringa che inizia con un numero imprecisato (ma maggiore di zero) di caratteri come lettere, punti, spazi, ecc. rappresentata da questa parte:
[\w\.\s]+
La seconda parte dell'espressione si riferisce alla reale informazione che ti serve catturare, tant'è che l'ho inclusa in un gruppo (con le parentesi tonde) e ho anche assegnato un nome allo stesso (VER), che permette di prendere tutte le sequenze di caratteri composte da 1) una cifra, 2) un punto, 3) un'altra cifra:
(?<VER>\d\.\d)
Questa espressione regolare permette di identificare tutti gli esempi che hai riportato nel tuo messaggio iniziale, isolando la parte relativa al solo numero di versione, che viene inserita nel gruppo "VER" (vedi Groups per approfondire).
Può accadere che tu debba considerare altri possibili formati rispetto a quello sopra; in tal caso, potresti combinare più espressioni usando il carattere "pipe" (|) oppure - forse la soluzione più semplice - prevedere l'applicazione di più di una espressione regolare: se la prima fallisce, vuol dire che hai già esaminato una serie di casistiche e puoi provarne una seconda, che ne ricopre altre, fino a quando il valutatore dell'espressione non ti restituisce un responso positivo, ossia fino a quando non hai trovato una espressione che viene soddisfatta, avendo sempre cura di "isolare" la parte che ti interessa in un gruppo in modo da poterla catturare.
Ad esempio, per supportare numeri di versioni a 2 cifre o a quattro cifre, potresti applicare in sequenza queste espressioni:
^[\w\.]+\s(?<VER>\d\.\d)$
^[\w\.]+\s(?<VER>\d\.\d\.\d\.\d)$
Per agevolarti la creazione delle espressioni, scarica un tool che ti consenta di testarle prima; io ad esempio uso Expresso.
Per scriverle più agevolmente, prova a leggere questo tutorial da 30 minuti (dichiarati).
Fammi sapere se ci sono dei progressi.
Un saluto!![]()