줄이 비어 있는지 여부를 확인하는 간단한 정규식을 만들려고합니다.
케이스;
" some" // not blank
" " //blank
"" // blank
답변
원하는 패턴은 여러 줄 모드에서 다음과 같습니다.
^\s*$
설명:
^
문자열 앵커의 시작입니다.$
문자열 앵커의 끝입니다.\s
공백 문자 클래스입니다.*
0 이상의 반복입니다.
여러 줄 모드 에서 줄의 시작과 끝 ^
과 $
도 일치합니다.
참고 문헌 :
비정규 대안 :
주어진 문자열 line
이 “공백”인지 (즉 trim()
, 공백 만 포함) 확인한 다음 결과 문자열을 확인하여 확인할 수도 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*$
마지막 줄이 비어있는 경우 (여러 줄 모드에서) 시나리오와 일치하지 않습니다.
답변
이 시도:
^\s*$
답변
가장 휴대용 정규식 될 것이다 ^[ \t\n]*$
(당신이 교체해야합니다 빈 문자열과 일치하도록 \t
하고 \n
그에 따라 탭과 줄 바꿈 포함) 및 [^ \n\t]
공백이 아닌 문자열을 일치합니다.
답변
이 답변에 대한 bchr02의 전체 크레딧 . 그러나 빈 줄 이있는 (주석 끝) 행에 대한 시나리오를 잡기 위해 약간 수정해야했습니다 . 정규식이 비어 있지 않은 줄과와 일치했습니다 .*/
*/
새로운: (^(\r\n|\n|\r)$)|(^(\r\n|\n|\r))|^\s*$/gm
내가 한 것은 ^
줄의 시작을 나타내는 두 번째 문자로 추가 하는 것입니다.
답변
여기서 공백은 의미하는 바를 의미합니다.
한 줄에 공백이 있거나 한 줄에 아무것도 없습니다.
아무것도 포함하지 않는 행을 일치 시키려면 ‘/ ^ $ /’를 사용하십시오.
답변
글쎄 … 내가 고민했다. (padpadd ++ 사용) 이것이 내가 찾은 해결책이다.
\ n \ s
줄 끝의 경우 \ n (일치하는 시작)-행의 시작 부분이 문자열이므로 캐럿은 도움이되지 않습니다. \ s 다음 문자열까지 공간을 차지합니다.
그것이 도움이되기를 바랍니다