줄로 분할 할 JS 정규식
긴 텍스트를 어떻게 별도의 줄로 나눕니 까? 이것이 line1을 두 번 반환하는 이유는 무엇 입니까?
/^(.*?)$/mg.exec('line1\r\nline2\r\n');
[ "line1", "line1"]
나는 확인하기 위해 멀티 라인 수정에 설정 ^
하고 $
시작하여 라인의 끝과 일치. 또한 모든 라인 을 캡처하기 위해 전역 수정자를 켰습니다 .
정규식 분할을 사용하고 싶지만 String.split
Linux \n
와 Windows \r\n
줄 끝 을 모두 다룰 것이기 때문이 아닙니다 .
arrayOfLines = lineString.match(/[^\r\n]+/g);
Tim이 말했듯이, 그것은 전체 경기이자 캡처입니다. regex.exec(string)
전역 수정 자에 관계없이 첫 번째 일치 항목을 찾으면 반환되는 것으로 보입니다 string.match(regex)
. Wheras 는 전역을 존중합니다.
사용하다
result = subject.split(/\r?\n/);
정규식은 전체 일치 와 첫 번째 캡처 그룹의 내용 모두 line1
이므로 두 번 반환 됩니다 .line1
나는 다음이 개행을 구성한다고 가정합니다.
- \ r 뒤에 \ n
- \ n 뒤에 \ r
- \ n 혼자서
- \ r 혼자서
사용하시기 바랍니다
var re=/\r\n|\n\r|\n|\r/g;
arrayofLines=lineString.replace(re,"\n").split("\n");
빈 줄을 포함하여 모든 줄의 배열에 대해.
또는
사용하시기 바랍니다
arrayOfLines = lineString.match(/[^\r\n]+/g);
비어 있지 않은 라인의 배열
모든 줄 끝 조합을 처리하고 같은 파일에 혼합 되어도 빈 줄을 제거하는 더 간단한 정규식 :
var lines = text.split(/[\r\n]+/g);
공백 트리밍 :
var lines = text.trim().split(/\s*[\r\n]+\s*/g);
우선 교체 \r\n
로를 \n
, 다음 String.split
.
var lines = text.match(/^.*((\r\n|\n|\r)|$)/gm);
나는 이와 같은 것을했다. 위의 링크는 내 바이올린입니다.
참고 URL : https://stackoverflow.com/questions/5034781/js-regex-to-split-by-line
'Program Tip' 카테고리의 다른 글
.NET에서 숫자에 대한 "st", "nd", "rd"및 "th"엔딩을 쉽게 얻을 수있는 방법이 있습니까? (0) | 2020.11.12 |
---|---|
Mountain Lion에 Rmagick 설치 오류 (0) | 2020.11.12 |
el capitan에서 'pod 설치'를 수행 할 수 없음 (15A279b) (0) | 2020.11.12 |
장고 템플릿의 쉼표로 구분 된 목록 (0) | 2020.11.12 |
system.out.println ()을 찾을 수 없습니다. (0) | 2020.11.12 |