Ваш вопрос не очень ясен. Похоже, вы ожидаете, что данные будут в этом формате:
123 456 789
234 567 890
Другими словами, каждая строка содержит одну или несколько групп цифр, разделенных пробелом. Предполагая, что вы обрабатываете файл по одной строке за раз, как вы сказали в исходном вопросе, я бы использовал это регулярное выражение:
/^\d+(\s+\d+)*$/
Если могут быть отрицательные числа, используйте это вместо этого:
/^-?\d+(\s+-?\d+)*$/
Ваше регулярное выражение не будет соответствовать пустой строке, и это тоже не будет. Наверное, так и должно быть; Я ожидаю, что пустые строки (включая строки, содержащие только пробелы) будут запрещены в подобном случае. Однако в конце файла может быть одна или несколько пустых строк. Это означает, что как только вы найдете строку, которая не соответствует приведенному выше регулярному выражению, вы должны убедиться, что каждая из оставшихся строк имеет нулевую длину.
Но здесь я делаю много предположений. Если это не то, что вы пытаетесь сделать, вам нужно предоставить нам более подробные требования. Кроме того, все, что этим достигается, — это грубая проверка формата данных. Это нормально, если вы просто сохраняете данные, но если вы также хотите извлечь информацию, вам, вероятно, следует выполнить проверку как часть этого процесса.
person
Alan Moore
schedule
31.03.2009