목록에서 값 찾기목록이 있는 경우:
List = {Henry(1,2), Robert(3,4), John( . ,6), Kai(13, . ) };
그러나 이름의 위치는 테이블마다 항상 다릅니다.
List = {Henry(1,2), Robert(3,4), Kai(13, . ), John( . ,6) };
때로는 특정 이름도 누락되었습니다.
리스트 = {헨리(1,2), 로버트(3,4) };
나는 우리가 Contains(List, List[1])를 사용할 수 있다는 것을 알고 있지만 그렇게 하면 목록에서 값의 위치를 고려합니다. "Henry"와 같은 문자열을 검색하고 Henry에 대해 (1,2)를 추출하고 1을 하나의 변수로 저장하고 2를 다른 변수로 저장할 수 있는 방법이 있는지 알고 싶습니다. 감사합니다
Re: 목록에서 값 찾기그래도 정규식을 사용하여 작동하게 해주셔서 감사합니다.@vince_faller
Re: 목록에서 값 찾기이것은 당신이 원하는 것을해야합니다.
Names Default to here(1);
Extract Expr({Henry(1,2), Robert(3,4), John( . ,6), Kai(13, . ) }, Henry(Wild(), Wild()));
//or for a more complete answer
l = {Henry(1,2), Robert(3,4), John( . ,6), Kai(13, . ) };
extracted = Eval(Substitute(
Expr(
Extract Expr(DV_LIST, Henry(WildList()));
),
Expr(DV_LIST), nameexpr(l)
));
first = Arg(extracted, 1);
second = Arg(extracted, 2);Re: 목록에서 값 찾기안녕 @Aam_jmp ,
후속 조치 @uday_guntupalli 정규 표현식을 사용하라는 의 제안과 유사하게 작동하고 var1 및 var2에 값을 저장하는 Contains()를 사용하는 간단한 스크립트가 있습니다.변수 "found"는 이름이 발견되면 조기에 루프를 종료하거나 var1 및 var2를 누락으로 설정하는 동안 목록에서 검색 문자열을 찾을 수 없다는 메시지를 인쇄하는 데 사용됩니다.
search_str = "Henry";
found = 0;
for(i = 1, i <= N Items(MyList), i++,
temp = char(MyList[i]);
If(Contains(temp,search_str) > 0,
var1 = num(word(2,temp,"(),"));
var2 = num(word(3,temp,"(),"));
found = 1;
);
if(found, break());
if(i == N Items(MyList) & !found,
Print("Search term not found in the list.");
var1 = .;
var2 = .;
)
);Re: 목록에서 값 찾기@Aam_jmp ,
Regex를 사용하여 원하는 문자열을 찾을 수 있습니다. 찾고자 하는 만큼 넓은 범위를 포함하도록 검색어를 구성해야 하며 검색어를 얼마나 잘 구성할 수 있는지에 따라 정규식의 기능이 잠금 해제됩니다.
아래 예는 "Henry"라는 용어에 대한 검색만 다룹니다.
Clear Log(); Clear Globals();
MyList = List = {Henry(1,2), Robert(3,4), John( . ,6), Kai(13, . ) };
SelInd = {};
for(i = 1, i <= N Items(MyList), i++,
If(!IsMissing(Regex(Char(MyList[i]),"Henry")),
Insert Into(SelInd,i);
);
);