Re: 문자열에 중복 문자가 있는지 확인하고 추출하는 방법은 무엇입니까?중복을 제거하는 한 가지 방법이 있습니다.
theList = Words( "abp-g5.GAIV_0099_P013_GAIV_0099_P013", "_." );
For( i = N Items( theList ), i >= 1, i--,
If( N Rows( Loc( theList, theList[i] ) ) > 1,
Remove From( theList, i, 1 )
)
);
newName = theList[1] || "." || theList[2];
For( i = 3, i <= N Items( theList ), i++,
newName = newName || "_" || theList[i]
);
Re: 문자열에 중복 문자가 있는지 확인하고 추출하는 방법은 무엇입니까?몇 가지 질문:
- 당신은 "단어"를 무엇이라고 생각합니까? "_"와 "."로 구분된 것이 있습니까?
- 중복이 여러 개인 경우 어떻게 합니까? 모두 추출/최단만/최장만/없음입니까?
- 문자열의 어느 지점에서나 중복이 발생할 수 있습니까? 중복된 부분은 항상 맨 뒤에 나오나요?
Re: 문자열에 중복 문자가 있는지 확인하고 추출하는 방법은 무엇입니까?감사합니다, 당신의 방법은 아주 좋습니다!
Re: 문자열에 중복 문자가 있는지 확인하고 추출하는 방법은 무엇입니까?감사합니다. 실제로 이것은 실용적인 문제입니다::
이 캐릭터에 GAI가 있을 때마다 등장 횟수에 상관없이 반복 등장할 때마다 그것으로 시작하는 캐릭터 중 하나를 추출한다.
그리고 확실히 중복이있을 것입니다.
Re: 문자열에 중복 문자가 있는지 확인하고 추출하는 방법은 무엇입니까?이것은 흥미로운 질문입니다. 좋아요 @txnelson 의 솔루션입니다. 그의 접근 방식 외에도 정규 표현식이 편리할 수 있는 상황이므로 여기에 다른 방법이 있습니다.
제공된 두 가지 예에는 다음과 같은 패턴이 있습니다.
- 접두사(예: "abp-g5")가 있을 수 있습니다.
- 원하는 문자열/문자가 접두사를 따릅니다.
- 반복/중복된 문자가 원하는 문자열/문자와 정확히 일치합니다.
- 반복/중복된 문자는 밑줄로 원하는 문자와 구분됩니다.
- 문자열 끝에 중복된 문자 외에는 아무것도 없습니다.
- 적어도 하나의 반복/중복 문자열/문자가 있습니다.
이러한 규칙이 변경해야 하는 열 이름을 정확하게 정의한다고 가정하면 다음 코드는 위의 가정과 일치하는 "현재 데이터 테이블"의 모든 열 이름을 업데이트합니다. 가정과 일치하지 않는 열 이름은 변경되지 않습니다.
names default to here(1);
dt = current data table();
for( k = 1, k <= n cols(dt), k++,
colName = column(dt, k) << get name();
colName = regex( colName, "^.*?(.+)(?:_\1)+$", "\1" );
try( column(dt, k) << set name( colName ) );
);
문자열에 중복 문자가 있는지 확인하고 추출하는 방법은 무엇입니까?이제 1000개 이상의 열이 있는 테이블이 있고 대부분의 열 이름에 추출해야 하는 중복 단어가 있습니다. 거물들에게 JSL로 이것을 달성하는 방법을 물어보십시오.
예를 들어:
열 이름은 abp-g5.GAIV_0099_P013_GAIV_0099_P013이고 GAIV_0099_P013을 추출합니다.
열 이름은 abp-g5.GAI1997_GAI1997이고 GAI1997을 추출합니다.
자동화 및 스크립팅맥 OS대량 맞춤화