Regex 대소문자를 구분하지 않게 만드는 방법안녕. JSL에서 정규식 검색에서 대소문자를 구분하지 않게 만드는 가장 좋은 방법을 아는 사람이 있습니까? 예를 들어, 경로 이름에서 파일 확장자를 추출하고 싶지만 확장자가 ".csv", ".CSV" 또는 ".cSv"인지는 중요하지 않습니다. 다음을 시도하면 확장자가 소문자인 파일 이름에서만 작동합니다.
filename = Regex(path, "(.+\/)*([^\/]+)\.(csv|xlsx)$", "\2")
한 가지 방법은 정규식을 수행하기 전에 전체 경로를 소문자로 변환하는 것이지만 여러 가지 이유로 그렇게 하고 싶지 않습니다.
filename = Regex(LowerCase(path), "(.+\/)*([^\/]+)\.(csv|xlsx)$", "\2")
내가 시도한 다른 방법은 일치 문자열에 "(?i)" 수정자를 사용하는 것이었지만 오류가 발생했습니다.
filename = Regex(path, "(?i)(.+\/)*([^\/]+)\.(csv|xlsx)$", "\2")
"정규식에서 수량자 *, +, ? 또는 {를 찾았습니다. 잘못된 위치에서는 'Regex'의 액세스 또는 평가에서 결과가 정의되지 않았습니다. JSL에서는 수정자가 지원되지 않는 것 같습니다. 어떤 아이디어가 있습니까?
자동화 및 스크립팅Re: Regex 대소문자를 구분하지 않게 만드는 방법파일 확장자를 추출하려면 Regex를 사용하는 대신 Word(), Words(), Item() 및 Items() 함수를 확인하는 것이 좋습니다.
Re: Regex 대소문자를 구분하지 않게 만드는 방법JMP의 Regex에는 IGNORECASE 플래그도 있지만 파일 이름(또는 확장명 또는 둘 다)만 원하는 경우 정규식 이외의 다른 방법을 사용하는 것이 좋습니다.
Names Default To Here(1);
path = Convert File Path("$SAMPLE_DATA/Big Class.jmp");
filename1 = Regex(path, "(.+\/)*([^\/]+)\.(JMP)$", "\2", IGNORECASE);
filename2 = Word(-2, path, "\/.");
filename3 = Word(-1, path, "\/");
Show(filename1, filename2, filename3);

정규식(소스, 패턴, ( , >)
스크립팅 가이드 > 데이터 유형 > 정규식 > 정규식 함수
Re: Regex 대소문자를 구분하지 않게 만드는 방법이 하이브리드 코드는 작동합니다
Names Default To Here( 1 );
path = "C:\users\big.cSv";
filename = "";
ext = Word( -1, path, "." );
If( Uppercase( ext ) == "CSV" | Uppercase( ext ) == "XLSX",
filename = Eval(
Parse(
"Regex(path, \!"(.+\/)*([^\/]+)\." || ext || "$\!", \!"\2\!")"
)
)
);
Show( filename );
내가 선호하는 JSL은
Names Default To Here( 1 );
path = "C:\users\big.cSv";
filename = "";
ext = Word( -1, path, "." );
If( Uppercase( ext ) == "CSV" | Uppercase( ext ) == "XLSX",
filename = Word( -2, path, ".\/" )
);
Show( filename );
Re: 정규 표현식을 대소문자 구분하지 않게 만드는 방법@jthi 감사합니다. 어딘가에서 본 적이 있다는 걸 알았습니다. 물론 스크립팅 가이드에 있었죠. 하하.