Sottostringa di una colonna del nome file tra un numero sconosciuto di caratteriQuando inserisco i dati mi ritrovo con una colonna del nome del file che appare così:
| Nome del file |
| Nome del test Data ID# Wafer e ID dispositivo1 #ID commento |
| Nome del test Data ID# Wafer e ID dispositivo2 #ID commento diverso |
| Nome del test diverso Data ID# Wafer e ID dispositivo1 #ID commento |
| Nome del test diverso Data ID# Wafer e ID dispositivo2 #ID commento diverso |
Ciò che voglio è quanto segue:
| Nome del file |
| ID wafer e dispositivo1 |
| Wafer e ID dispositivo2 |
| ID wafer e dispositivo1 |
| Wafer e ID dispositivo2 |
Tutti questi hanno delimitatori e lunghezze di stringa diversi, quello che voglio fare è estrarre il Wafer e l'ID dispositivo con i caratteri 'ID#' e '#ID' meno gli spazi. Sto trovando molte informazioni sull'estrazione di un numero specifico di caratteri, ma sto facendo fatica a trovare informazioni sulla ricerca di una stringa e sulla rimozione di una stringa (in questo caso 'ID#' e tutto ciò che precede) da sinistra e una stringa (in questo caso '#ID' e tutto ciò che segue) da destra e lasciando la stringa al centro.
Grazie in anticipo per il vostro aiuto.
Modellazione statistica avanzataFusione e pulizia dei datiPersonalizzazione di massaIngegneria della qualità e dei processiRe: Sottostringa di una colonna del nome file tra un numero sconosciuto di caratteriLa funzione Word() può farlo facilmente.
Names Default To Here( 1 );
dt = Current Data Table();
For Each Row(
:File Name = Word( 1, :File Name, "#" )
);
Re: Sottostringa di una colonna del nome file tra un numero sconosciuto di caratteriJim,
Ho provato questo metodo già e ancora proprio ora. Finisce per rimuovere tutto dopo il primo carattere '#'. Quindi ora sto ottenendo questo per ogni riga:
Nome del test Data ID
Sembra che potrebbe essere possibile usare munger o substr ma non riesco nemmeno a farlo funzionare.
Re: Sottostringa di una colonna del nome file tra un numero sconosciuto di caratteriOops... cambia solo per estrarre la seconda parola
Names Default To Here( 1 );
dt = Current Data Table();
For Each Row(
:File Name = Word( 2, :File Name, "#" )
);
Prenditi del tempo per leggere la funzione Word() nell'indice di script.Mostrerà cosa può essere ogni elemento e un esempio di come funziona.
Re: Sottostringa di una colonna del nome file tra un numero sconosciuto di caratteriMi piace usare la funzione Word() quando l'estrazione è semplice. Ecco un altro approccio che utilizza la funzione Regex(). Lo stesso approccio può essere utilizzato se il modello di estrazione non è semplice, semplicemente modificando l'espressione regolare.
Names Default to Here( 1 );
// set up example
dt = New Table( "Untitled",
Add Rows( 4 ),
New Column( "File Name",
Character,
"Nominal",
Set Values(
{"Test Name Date ID# Wafer and Device ID1 #ID comment",
"Test Name Date ID# Wafer and Device ID2 #ID different comment",
"Different Test Name Date ID# Wafer and Device ID1 #ID comment",
"Different Test Name Date ID# Wafer and Device ID2 #ID different comment"
}
)
)
);
// make a data column for result
dt << New Column( "Extract", "Character", "Nominal" );
// compute row-wise result
For Each Row(
:Extract = Regex( :File Name, "ID# (.+) #ID", "\1" );
);
Ecco il risultato:
