Sono in difficoltà con una regex per fermarsi alla fine della linea.Regex: mancata corrispondenza di fine riga
ingresso assomiglia a questo:
Alcune linee hanno valori (può contenere qualsiasi carattere) dopo i due punti, alcuni non lo fanno. Ci possono essere spazi su entrambi i lati del colon, potrebbe non esserci.
Per le linee 2 e 4 il seguente lavoro (cioè partita 12
e 16
rispettivamente):
Pink\s*:\s*(.*)\n
Red\s*:\s*(.*)\n
Ma per la linea 3 (dove non c'è valore per abbinare), una regex utilizzando la sintassi sopra restituisce 16 , cioè legge oltre la fine della linea.
Qualcuno può suggerire cosa sto facendo male? Sto usando VBA.
Ho appena notato un doppio punto in più prima di 16 nell'esempio, quindi in realtà: 16 che viene restituito, ma non è pertinente alla domanda. – QAer
È necessario sostituire '\ s' con' [\ t] '. O con '[^ \ S \ r \ n]'. –