Regex 세분화에 대해 계속 묻기내가 실수를 했습니다. 이와 같은 코드를 작성하면 올바른 결과를 얻을 수 없습니다.
c=Regex("abcdef{:[[ghi]]:[{op},{q}]}", ":\[\[]\([^\]]*)\]", "[\1]");얻을 필요:
[{op},{q}]그래서 JSL을 작성하는 방법. 매우 감사합니다!
Re: Regex 세분화에 대해 계속 묻습니다.데이터가 json 또는 xml인 경우 JMP의 json/xml 파서를 사용해야 합니다. 이러한 중첩 구조에 대한 파서를 작성하는 것은 쉽지 않으며 정규식만으로는 충분하지 않습니다. xml/json을 테이블로 가져온 다음 행과 열을 찾는 것은 훌륭한 선택입니다.
데이터를 다른 방식으로 처리해야 하는 경우 다음과 같이 간단한 JSL 루프와 정규식 테스트를 사용하여 처리할 수 있습니다.
txt = loadtextfile(...);
ok=1;
while( ok,
... try various regex that remove a bit of data from txt ... set ok to 0 if nothing works.
)
이는 작은 파일에서 작동하며 쉽게 유지 관리할 수 있습니다. 그러나 많은 비트의 데이터가 포함된 큰 파일은 큰 txt 문자열에서 데이터를 제거하면 제거할 때마다 많은 데이터가 복사되기 때문에 너무 느립니다. (n^2 문제입니다. 파일 크기를 두 배로 늘리면 실행 시간이 4배가 됩니다.)
대용량 파일의 경우 입력 문자열을 수정하지 않는 단일 패턴 일치를 작성하는 것이 가장 좋습니다. 전체 파일과 일치하는 patRepeat() 패턴 내에서 정규식 또는 패턴을 사용할 수 있으며 patTest(... ;1)를 사용하여 구문 분석된 결과를 JSL 매트릭스 또는 목록에 저장하는 일치 내에서 일부 JSL을 실행합니다. 또는 연관 배열. JMP에 json 파서가 내장되기 전에는 @XanGregg 그리고 나는 약간을 썼다 json 파일을 구문 분석하는 JSL . 이것은 여전히 훌륭한 예이지만 JMP의 내장 파서가 더 좋습니다.
다음은 다음을 사용하여 파일을 구문 분석하는 JSL이 있는 다른 게시물입니다. patMatch(... patRepeat( 패턴 ) ... ) .
https://community.jmp.com/t5/Uncharted/The-Other-Kind-of-Model/ba-p/231703 3D 모델에 대한 데이터 파일 구문 분석
https://community.jmp.com/t5/Uncharted/Web-Logs/ba-p/29389 Apache 로그 파일 구문 분석
https://community.jmp.com/t5/Uncharted/WordNet/ba-p/28984 워드넷 파일 파싱
https://community.jmp.com/t5/Uncharted/Pronounce-Elephant/ba-p/21272 CMU 음소 파일 구문 분석
나는 종종 >>log() 함수를 사용하여 복잡한 패턴 일치를 디버그합니다.
https://community.jmp.com/t5/Uncharted/Backtracking-Secrets/ba-p/20984 를 사용하여 >>로그() 디버깅을 위해
그리고
https://community.jmp.com/t5/Uncharted/Pattern-Matching/ba-p/21005 소개 patMatch()
https://community.jmp.com/t5/Uncharted/Regex/ba-p/21008 소개 정규식()
Re: Regex 세분화에 대해 계속 묻습니다.이런 식으로 반복해야 하기 때문입니다.
나는 여전히 정규화를 사용하여 초과 데이터를 제거하고 JSL로 연속 처리에 유용한 데이터를 유지하는 방법을 배우고 싶습니다. 대단히 감사합니다!
Re: Regex 세분화에 대해 계속 묻습니다.전문가의 도움에 감사드립니다!
JMP15를 다운로드하고 이 작업을 수행하는 방법을 배웠습니다.
나는 데이터를 얻기 위해 여러 가지 방법을 비교했습니다. 나는 그것들의 차이점을 이해합니다.

Re: Regex 세분화에 대해 계속 묻습니다.JMP 15는 이 JSON 데이터로 꽤 좋은 작업을 수행합니다(파일 이름을 .txt에서 .json으로 바꾸면 더 쉬울 것입니다. @Justin_Chilton ); JMP 14는 이 json 사례를 올바르게 처리하지 않는 것 같습니다. 다음은 최상의 추측을 사용하고 스택 옵션을 추가하는 JMP 15 가져오기입니다.
Best Guess is under the red triangle베스트 추측은 빨간색 삼각형 아래에 있습니다. 다음과 같이 두 가지 가져오기를 수행할 수 있습니다.
get the little table of column names열 이름의 작은 테이블 가져오기
get the bigger table of data더 큰 데이터 테이블 가져오기
원하지 않는 열은 생략할 수 있습니다. 작은 테이블의 열 이름을 큰 테이블에 적용하여 value0의 이름을 2018로 바꿀 수 있습니다.
Re: Regex 세분화에 대해 계속 묻습니다.다른 코드는
"\[[^\[]+(?=}$)"
Re: Regex 세분화에 대해 계속 묻습니다.VBA 커뮤니티에서 두 개의 직교 코드를 얻었지만 여전히 JSL 코드로 변경하지 않을 것입니다.
전문가의 지도를 요청하십시오.감사합니다!
Sub t()
Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "^(?:.*?(\[.*?]))*|."
reg.Global = True
Cells(1, 2) = reg.Replace(Cells(1, 1).Value, "$1")
End Sub
Re: Regex 세분화에 대해 계속 묻습니다.나는 충분히 모른다.
그냥 파티션인줄 알았는데
시작:[{
두 번째로 종료}]
그래서 [{...}]와 그들 사이를 얻을 수 있습니다.
내 원래 이해가 너무 성급했던 것 같다.
감사!
Re: Regex 세분화에 대해 계속 묻습니다.또 다른 아이디어는 중첩 데이터 구조(목록?)에 대한 파서를 설계 및 작성하여 텍스트를 스트리밍하고 데이터를 빌드한 다음 원하는 값을 수집하는 것입니다.
Re: Regex 세분화에 대해 계속 묻습니다.실제 텍스트는 귀하가 제시하고 우리가 해결한 예제보다 훨씬 더 복잡합니다.
이전에 이 문제를 게시했습니다. 그런 다음 전체 텍스트로 작업하는 대신 먼저 텍스트를 JMP 목록으로 변환한 다음 항목을 반복하려고 했습니다. JMP는 저와 완전히 싸웠고 제가 시도한 어떤 것도 효과가 없었습니다. 아마도 다른 누군가가 목록을 얻는 방법을 알고 있을 것입니다. 너무 간단해 보입니다. Regex()를 사용하여 문자열을 처리하는 것은 텍스트가 목록 항목으로 분할되어 훨씬 더 간단할 것이라고 생각합니다.
Re: Regex 세분화에 대해 계속 묻습니다.실제 데이터에 대한 위의 코드는 아직 최신 상태가 아닙니다.
열쇠를 못 찾은 것 같아요.

지침을 계속하려면 전문가를 초대하십시오.감사합니다!
Re: Regex 세분화에 대해 계속 묻습니다.다른 형태:
Names Default to Here( 1 );
string = "abcdef{:[[ghi]]:[{op},{q}]}";
c = Regex( string, "\{:.+:(.+)\}", "\1" );Re: Regex 세분화에 대해 계속 묻습니다.다음은 잠재적인 대안입니다.
c = Regex( "abcdef{:[[ghi]]:[{op},{q}]}", "\!\[(\{\w+\},*)+]" );Re: Regex 세분화에 대해 계속 묻습니다.내가 할 방법은 다음과 같습니다.
Names Default To Here( 1 );
x = "abcdef{:[[ghi]]:[{op},{q}]}";
c=word(1,word(3,x,":"),"]") || "]";Re: Regex 세분화에 대해 계속 묻습니다.작동하지 않습니다.
c=Regex("abcdef{:[[ghi]]:[{op},{q}]}", ":\[\[]{([^\]]*)\]", "[{\1]");