Регулярное выражение без \ r \ n и не полностью пробел - PullRequest
0 голосов
/ 29 февраля 2012

Я проверяю правильность ввода пользователем исполняемого файла; однако он включает в себя такие вещи, как del / rm, dir / ls. Входные данные собираются через XML и проверяются с использованием XSD . Я не буду проверять наличие файлов, поскольку моя программа отправляет их на сервер, который может иметь или не иметь доступ к одним и тем же файлам.

Единственным требованием является отсутствие новой строки \r или \n, и он не может быть полностью пустым пространством. Я думаю, что было бы правильно предположить, что вкладка \t также не будет разрешена, но меня больше беспокоит перевод строки.

Спасибо

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Означает ли это, что у вас есть ограничения, упомянутые здесь: http://www.regular -expressions.info / xml.html

Если это так, то вы, вероятно, хотите что-то вроде этого: [^\r\n\t]*[^\r\n\t\s][^\r\n\t]*

Средняя часть означает, что должен быть один символ, который не является символом новой строки, табуляции или пробела.Остальное означает ноль или более символов вокруг этого символа, которые не являются символом новой строки или табуляции (но это может быть пробел).Я думаю, что вы могли бы удалить \r\n\t из средней группы, потому что все они могут быть включены в \s, но я не проверял ничего из этого.

Удалите три вхождения \tесли вы хотите вкладки.

1 голос
/ 29 февраля 2012

Я не совсем уверен, что вы хотите сделать, но регулярные выражения для "без новой строки и не только пробела" были бы

[ \t]*\S[^\r\n]*

Это соответствует нулю или более пробельных символов, за которыми следуют непробельные символы и произвольное количество символов, которые не являются \ r или \ n (включая пробелы и символы табуляции). Он не может совпадать со строкой, состоящей только из пробелов (так как не было бы совпадения непробельных символов \ S).

Чтобы запретить вкладки, вы можете изменить это на

[ ]*\S[^\r\n\t]*
...