문자열중에서 알파벳이나 숫자가 아닌 특수문자를 찾을려고 하는데 어떤방법이 없을까요?
예를들어 "%123%adsfgyt>ghjgdsa:sda:" 라는 문자열중에서 ">"의 위치를 기준으로해서
가장가까운
"%" 와 ":" 를 찾으려고 합니다.
여기서 "%" 와 ":" 는 예일뿐이고 다른 특수문자가 올수도 있습니다.
어쨌던 숫자나 알파벳이아닌 특수문자를 ">"을 기준으로 해서 찾고싶습니다.
POS함수를 이용해서 찾으려고하는데 ">"를 기준으로해서 예를든 문자중에서 3과a사이의 "%'와 a와s사이의 ":"를 찾으려고하니 도데체...
초보라서 도대체 감이....
답변 부탁드리겠습니다.
그냥 위치 찾아서 하나씩 비교해보시면 될텐데요. 조금만 생각해 보시면 될텐데...
var
Count: Integer;
Found: Boolean;
Index: Integer;
P: Integer;
Source: string;
begin
Source := '%123%adsfgyt>ghjgdsa:sda:';
P := Pos('>', Source);
if P <> 0 then
begin
if (P - 1) < (Length(Source) - P) then
Count := P - 1
else
Count := Length(Source) - P;
Found := False;
for Index := 1 to Count do
begin
if Source[P - Index] in [':', '%'] then
begin
ShowMessage(' Left Index: ' + IntToStr(P - Index) +
' Left Char: ' + Source[P - Index]);
Found := True;
end;
if Source[P + Index] in [':', '%'] then
begin
ShowMessage(' Right Index: ' + IntToStr(P + Index) +
' Right Char: ' + Source[P + Index]);
Found := True;
end;
if Found then
Break;
end;
end;
end;
^^ 항상 즐코하세요...