Q&A

  • copy 관련 질문입니다.

점심식사 맛있게 하셨나요^^*
오늘도 어김없이 게시판을 누비고 다니게 되는군요.ㅠ.ㅠ

<!--CodeS-->

<a href="TA_NOJ_103s.jsp?g2bNoticeNum=20061229071&bidNoticeCt=00">20061229071-00</a>
<a href="TA_NOJ_103s.jsp?g2bNoticeNum=20061229072&bidNoticeCt=01">20061229072-01</a>
<a href="TA_NOJ_103s.jsp?g2bNoticeNum=20061229072&bidNoticeCt=02">20061229072-02</a>
<a href="TA_NOJ_103s.jsp?g2bNoticeNum=20061229072&bidNoticeCt=03">20061229072-03</a>

<!--CodeE-->

위와 같은 문자열에서 예제(g2bNoticeNum=*************&bidNoticeCt=**">)와 같이 * 표시된 부분만 추출하려고 하는데요.
여타 프로그래밍에서는 정규표현식으로 쉽게 가능했지만, 델파이에서는 구현이 안되는 것인지 답답합니다.

pos()를 이용해서 시작position, 끝position 을 지정해서 그 사이에 문자열을 추출하는 것은 가능하였지만,
예를 들어 아래와 같이 추출을 하게되면 원하는 값이 나오지를 않더라구요.

<!--CodeS-->

          gcodeStrStart := Pos('&bidNoticeCt=', HTMLStr.strings[index2]);
          gcodeStrEnd := Pos('\">', HTMLStr.strings[index2]);
          gcodeTemp := copy(HTMLStr.strings[index2], (gcodeStrStart+13), (gcodeStrEnd-gcodeStrStart)-2);

<!--CodeE-->

속시원한 답변 부탁드립니다.
점심먹은것 다 채했어요 ㅠ.ㅠ
2  COMMENTS
  • Profile
    정락문 2006.12.30 00:26


    이런 식으로 한번 해보세요.
    temp1은 HTMLStr.strings[index2]입니다.

    gcodeStrStart := Pos('&bidNoticeCt=', temp1) + Length('&bidNoticeCt=');
    gcodeStrEnd := Pos('">', temp1);
    gcodeTemp := copy(temp1, gcodeStrStart, gcodeStrEnd-gcodeStrStart);

    이런식으로는 할 수 있는데요. 차라리 특정한 패턴을 찾아서 처리하는 것이 더 쉬울지도 모르겠습니다.
    미약하나마 도움이 되었으면 좋겠습니다.ㅎㅎ
  • Profile
    이하나 2006.12.30 00:36

    감사드려요.^^*;