Używam następujący Javascript czytać ciągów z pliku tekstowego i przetwarzać je z wyrażenia regularnegoJavaScript Regular Expression nie co drugi czas jest zwany
while (!textFile.AtEndOfStream)
{
currLine = textFile.ReadLine();
match = re.exec(currLine);
do stuff with match
}
Mam problem jest to, że w każdym innym czasie re.exec nazywa się niepowodzeniem i zwraca null; więc pierwszy wiersz jest przetwarzany poprawnie, ale w drugim wierszu występuje wartość null, następnie trzeci wiersz działa, a czwarty wiersz ma wartość null.
mogę użyć następującego kodu, aby uzyskać wynik chcę
while (!textFile.AtEndOfStream)
{
currLine = textFile.ReadLine();
match = re.exec(currLine);
if (match == null) match = re.exec(currLine);
}
ale to wydaje się trochę bolesnego kludge. Czy ktoś może mi powiedzieć, dlaczego tak się dzieje i co mogę zrobić, aby naprawić to poprawnie?
Andy E ma właściwe rozwiązanie, ale w przypadku jesteś zainteresowany, możesz zmienić tę ostatnią linię do 'match = meczu || re.exec (currLine); ' – Skilldrick
@Sililldrick: usunięto moje, ponieważ odpowiedź bobince była bardziej kompletna. Teraz ma właściwe rozwiązanie :-) –