7 ответов:
шаблон вы хотите, что-то вроде этого в многострочном режиме:
^\s*$объяснение:
^- это начало строки якорь.$- конец строки якорь.\s- это класс символов пробела.*- это ноль или более повторений.в многострочном режиме,
^и$также соответствует началу и концу линия.ссылки:
альтернатива без регулярных выражений:
вы также можете проверить, если данная строка
lineявляется "пустым" (т. е. содержит только пробелы) поtrim()- ing его, а затем проверить, если результирующая строкаisEmpty().в Java, это было бы что-то вроде это:
if (line.trim().isEmpty()) { // line is "blank" }решение регулярных выражений также может быть упрощено без якорей (из-за того, как
matchesопределяется в Java) следующим образом:if (line.matches("\s*")) { // line is "blank" }ссылки на API
String String.trim()
- возвращает копию строки с опущенными начальными и конечными пробелами.
boolean String.isEmpty()
- возвращает
trueесли и только еслиlength()и0.boolean String.matches(String regex)
- говорит ли это (все) строка соответствует заданному регулярному выражению.
на самом деле в многострочном режиме более правильный ответ такой:
/((\r\n|\n|\r)$)|(^(\r\n|\n|\r))|^\s*$/gmпринято отвечать:
^\s*$не соответствует сценарию, когда последняя строка пуста (в многострочном режиме).
самым портативным регулярным выражением будет
^[ \t\n]*$чтобы соответствовать пустой строке (обратите внимание, что вы должны заменить\tи\nс вкладкой и новой строкой соответственно) и[^ \n\t]чтобы соответствовать строке без пробелов.
здесь пустой означает то, что вы имеете в виду.
Строка содержит полный пробел или строка не содержит ничего.
Если вы хотите сопоставить строку, которая ничего не содержит, то используйте '/^$/'.
полный кредит bchr02 для этого ответ. Однако мне пришлось немного изменить его, чтобы поймать сценарий для строк, которые имеют
*/(конец комментария), за которым следует пустая строка. Регулярное выражение соответствовало непустой строке с*/.New:
(^(\r\n|\n|\r)$)|(^(\r\n|\n|\r))|^\s*$/gmвсе, что я сделал, это добавить
^как второй символ для обозначения начала строки.
хорошо...Я возился вокруг (с помощью notepadd++) и это решение я нашел
\n\s
\n для конца строки (где вы начинаете сопоставление) -- каретка не поможет в моем случае, поскольку начало строки является строкой \S занимает любое пространство до следующей строки
надеюсь, что это помогает
Comments