정규식을 사용하여 후행 공백을 제거합니까?
빈 줄을 제거하지 않고 코드에서 후행 공백과 탭을 제거하고 싶습니다.
나는 시도했다 :
\s+$
과 :
([^\n]*)\s+\r\n
그러나 모두가 빈 줄을 제거했습니다. \s
줄 끝 문자도 일치 생각 합니다.
업데이트 (2016) :
요즘에는 사용자 지정 / 사용자 설정과 함께 Sublime의 TrailingSpaces 패키지 를 사용하여 코드 정리를 자동화 합니다.
"trailing_spaces_trim_on_save": true
후행 공백을 강조 표시하고 표시 할 때 자동으로 잘라 내기.
후행 공백과 탭을 제거해.
[ \t]+$
전용 줄을 공백 유지하면서 후행 공백을 제거하려면 정규식이 공백 이 아닌 문자 뒤의 후행 공백 만 제거하도록합니다 . 따라서 먼저 공백이 아닌 문자를 확인해야합니다. 즉, 공백이 아닌 문자가 일치 항목에 포함되어야 대체 항목에 포함되어야합니다.
정규식 : ([^ \t\r\n])[ \t]+$
대체 : \1
또는 $1
, IDE에 따라 다름
플랫폼은 지정되지 않은 C # ( .NET )에서는 다음과 같습니다.
정규식 (텍스트 줄 옵션을 가정 합니다. 아래 예에서는 사용합니다) :
[ \t]+(\r?$)
교체 :
$1
"\ r? $"에 대한 설명은 정규식 옵션, 다중 행 모드 (MSDN)를 참조하십시오 .
코드 예
이렇게하면 모든 줄에서 모든 후행 공백과 모든 후행 TAB이 제거됩니다.
string inputText = " Hello, World! \r\n" +
" Some other line\r\n" +
" The last line ";
string cleanedUpText = Regex.Replace(inputText,
@"[ \t]+(\r?$)", @"$1",
RegexOptions.Multiline);
후행 및 선행 공백을 찾는 정규식 :
^[ \t]+|[ \t]+$
Visual Studio 2012 이상 ( .NET 정규식 사용 )을 사용하는 경우 다음 정규식을 사용하여 빈 줄을 제거하지 않고 후행 공백을 제거 할 수 있습니다.
바꾸다 (?([^\r\n])\s)+(\r?\n)
와 $1
일부 설명
다소 복잡한 필요가 필요한 이유는 문자 클래스 \s
가 공백, 탭 및 개행 문자 \s+
와 일치하는 것 공백 만 포함하는 행 그룹과 일치하기 때문입니다. $
이 정규식 종료를 추가하는 데 도움이되지 않습니다 . 공백과 줄 바꿈 문자 만 포함하는 줄 그룹과 여전히 일치하기 때문입니다.
또한 (?([^\r\n])\s)
표현의 의미를 정확히 알고 싶을 수도 있습니다 . 이것은 캐리지 리턴 이나 줄 바꿈이 아닌 경우 공백 문자 클래스와 일치하는 것을 의미합니다.
대체 구조는 일반적으로 참과 거짓 부분을 가지고 있습니다.
(?( expression ) yes | no )
그러나 그것이 사실이라고 말하지 않습니다.
빈 줄을 무시하면서 후행 공백을 제거 긍정적 인 뒤를 사용합니다.
(?<=\S)\s+$
Look-behind는 일치에서 공백이 아닌 (\ S)를 제외하는 방법입니다.
[ |\t]+$
빈 교체로 작동합니다. \s+($)
A는 함께 $1
교체도 작동합니다. Visual Studio Code에서는 ...
공백 후행 공백을 제거하십시오.
\n|^\s+\n
자바 :
String str = " hello world ";
// prints "hello world"
System.out.println(str.replaceAll("^(\\s+)|(\\s+)$", ""));
다음과 같이 사용할 수 있습니다.
var regex = /( )/g;
샘플 : 여기를 클릭하십시오
'ProgramingTip' 카테고리의 다른 글
Django 템플릿에서 TEMPLATE_DEBUG 플래그를 확인하는 방법은 무엇입니까? (0) | 2020.12.10 |
---|---|
MySQL의 날짜를 이동 필드에서 변환 (0) | 2020.12.10 |
전체 파일에서 열을 선택해야합니까? (0) | 2020.12.10 |
"이전 내장 대리자"를 종료 실행 중단 (0) | 2020.12.10 |
Remove () 메소드가 문자를 변수로 허용하는 이유는 무엇입니까? (0) | 2020.12.10 |