난 내가 파일을 조작하여 가지고 문자열과 정규 표현식에 대한 일치하는 항목을 찾기 위해 자바 스크립트/JScript의 작은 창문 스크립트를 쓰고 있어요.정규식 패턴을 시작 라인 번호로 제공하여 문자열과 일치시키는 방법. 끝 줄 번호. 그 안에서 검색이 수행되어야합니까?
나는 시작과 검색의 끝의 줄 번호를 알고있다. 그러나 나는 잠시 동안이 자리에 머물러있다.
난 내가 파일을 조작하여 가지고 문자열과 정규 표현식에 대한 일치하는 항목을 찾기 위해 자바 스크립트/JScript의 작은 창문 스크립트를 쓰고 있어요.정규식 패턴을 시작 라인 번호로 제공하여 문자열과 일치시키는 방법. 끝 줄 번호. 그 안에서 검색이 수행되어야합니까?
나는 시작과 검색의 끝의 줄 번호를 알고있다. 그러나 나는 잠시 동안이 자리에 머물러있다.
가장 좋은 방법은 정규 표현식을 복잡하게하지 않는 것입니다 - 당신이 당신의 정규식 능력이 매우 좋지 않은 경우 특히, 오히려 읽을 혼란 만들 수 있습니다. 먼저 간단한 작업 - 문서를 줄의 배열로 분할하고 줄을 고른 다음 정규 표현식을 수행하십시오. 이 방식으로 작은 문자열에서 정규 표현식을 실행하면 크기가 큰 텍스트 파일에서 훨씬 빨라질 수 있습니다.
// Assuming file is a FileSystemObject TextStream object:
var lines = file.ReadAll().split("\r\n"); // split based on Windows newline
// Arrays have zero-based indexes, so the line you need is your line number -1
var match = lines[4].match(myRegEx); // lines[4] is line 5 of the string
// If you need it to span multiple lines, extract and join the lines you need:
var specificLines = lines.splice(4, 6); // extract the 5th and 6th lines
specificLines.match(myRegEx); // don't forget the regex's /m modifier
splice
는 및 제외의 종료 인덱스 개까지 시작 인덱스에서 배열 항목을 반환합니다. 또한 경기의 특정 숫자 후 분할을 중지 split
방법에 limit
매개 변수를 제공 할 수 있습니다. 이렇게하면 필요한 파일이 끝까지 가깝지 않은 큰 파일에서 속도가 향상됩니다.
용어 :
그런 다음, 관심있는 비트 위의 모든 라인을 일치 캡처 그룹에서 원하는 부분을 캡처해야합니다. 예를 들어, 네 번째와 다섯 번째 라인을 추출,이 정규식을 사용할 수
/^(?:.*(?:\r\n|[\r\n])){3}((?:.*(?:\r\n|[\r\n])){2})/
당신이 그룹 # 1 캡처에서 사용할 수 있습니다 원하는 부분입니다. 이 같은 것을 보는