정규식: 계산 속도 및 불완전한 수식 실행안녕하세요,
정규식에 대해 두 가지 질문이 있습니다.
- Below I've shown some code. I'm creating formula columns that parse information from another column. The formulas grab the correct information, but ALWAYS stop at row 3024. The datasets I work with can be tens or rows, or much larger.
dt << New column( "Column 1", formula( regex( :Other column, "pattern" ) ) );
dt << New column( "Column 2", formula( regex( :Other column, "pattern", "\1" ) ) );
dt << New column( "Column 3", formula( num( regex( :Other column, "pattern" ) ) ) );<BR /><BR />dt << Rerun Formulas; // Doesn't help!
- 디버거에서 스크립트의 타이밍을 맞추면 타이머는 스크립트가 ~1초 안에 완료되고 이 세 줄의 코드가 대부분의 시간을 차지한다고 말합니다. 다른 사소한 일도 일어나고 있습니다. 그러나 대부분의 경우 JMP는 실행할 때 잠기고 디버거에서 스크립트 실행을 중지하거나 작업 관리자에서 작업을 종료해야 합니다.
저는 for()와 for each()에서 정규 표현식을 사용했고 비슷한 문제가 있었습니다. 그러나 정규 표현식은 for()와 for each()와 더 비슷해 보이는데, 공식은 일상적으로 끝나지만 스크립트 실행을 완료하는 데 걸리는 시간은 JMP를 잠그고 매우 오랜 시간이 걸리며, 아예 끝나지 않습니다.
이것은 매우 기본적인 정규식 스크립팅입니다. 저는 다른 프로젝트에서 훨씬 더 큰 데이터 세트로 for 루프에서 훨씬 더 복잡한 작업을 했습니다. 데이터 세트 자체는 CSV로 가져왔지만 이것이 다른 데이터 세트와 제가 알아낼 수 있는 유일한 차이점입니다. 무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까?
데이터 접근윈도우Re: Regex: 계산 속도 및 불완전한 수식 실행무슨 일이 일어나고 있는지 모르지만 수식이 필요하지 않은 경우 << 각 값 설정을 사용해 볼 수 있습니다.
Re: Regex: 계산 속도 및 불완전한 수식 실행패턴에는 특정 데이터에 대해 오랜 시간이 걸리는 방식으로 중첩된 별 또는 더하기 작업이 포함되며 행 3024에는 해당 데이터 패턴이 있습니다.Re: Regex: 계산 속도 및 불완전한 수식 실행불행하게도 내가 정규식을 사용하는 이유는 관심 있는 num()의 위치와 값이 검색된 문자열 내에서 변경되지만 형식은 동일하게 유지되기 때문입니다. 정규식 함수를 다른 줄로 이동하고 행 생성 후 각 값( num() )을 설정하기 위해 검색된 숫자(문자열)를 전달하여 행을 채우면 regex() 함수에 여전히 동일한 문제가 있습니다.
Re: Regex: 계산 속도 및 불완전한 수식 실행맙소사 이거 부럽다... 내 정규식 패턴을 살펴보고 행 3024와 그 주변의 문자열과 비교하기 시작했습니다.우리 데이터베이스에는 약간의 미세 조정이 필요하다고 생각합니다. 문자열은 이러한 많은 행의 정규식 패턴과 일치하지 않습니다.에잇!
이 일을 하도록 이끌어 주셔서 감사합니다. @Craige_Hales !