Q&A

  • 문자열중에서 알파벳이나 숫자가 아닌 특수문자를 찾을려고 하는데 어떤방법이 없을까요?
문자열중에서 알파벳이나 숫자가 아닌 특수문자를 찾을려고 하는데 어떤방법이 없을까요?

예를들어 "%123%adsfgyt>ghjgdsa:sda:" 라는 문자열중에서 ">"의 위치를 기준으로해서
가장가까운
"%" 와  ":" 를 찾으려고 합니다.  
여기서 "%" 와  ":" 는 예일뿐이고 다른 특수문자가 올수도 있습니다.

어쨌던 숫자나 알파벳이아닌 특수문자를 ">"을 기준으로 해서 찾고싶습니다.
POS함수를 이용해서 찾으려고하는데 ">"를 기준으로해서 예를든 문자중에서 3과a사이의 "%'와 a와s사이의 ":"를 찾으려고하니 도데체...


초보라서 도대체 감이....

답변 부탁드리겠습니다.
1  COMMENTS
  • Profile
    최용일 2002.03.05 18:55
    안녕하세요. 최용일입니다.

    그냥 위치 찾아서 하나씩 비교해보시면 될텐데요. 조금만 생각해 보시면 될텐데...

    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;

    ^^ 항상 즐코하세요...