조무위키
조무위키
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보
행위
틀
토론
편집
역사 보기
틀
Str index/설명문서
편집하기
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
==사용법== 다음과 같이 쓰면 문자열에서 지정된 번호 위치의 문자를 출력합니다. {| class="wikitable" style="margin: 1em 3em;" |style="padding: 1em;"|<code><nowiki>{{str index | 문자열 | 번호 }}</nowiki></code> |} 코드 길이를 최적화하고 오류 발생 가능성을 줄이려면 다음과 같이 씁니다. 문자열에 등호(=)가 포함된 경우의 잘못된 동작을 방지합니다. {| class="wikitable" style="margin: 1em 3em;" |style="padding: 1em;"|<code><nowiki>{{str index|1=|2=}}</nowiki></code> |} *문자열은 최대 500자까지 가능하며, 아래의 문자만을 지원합니다. 지원 못하는 문자에 대해서는 오류 메시지를 출력합니다. :*영문 대소문자 A~Z, a~z :*숫자 0~9 :*특수 기호 <nowiki>!@#$%^&*().,<>:;[]'"?/\{}~`=-|+_♣♦♥♠</nowiki> :*공백 *공백( )에 대해서는 &#32;를 출력하는데, 이는 때에 따라 다르게 출력될 수 있으므로 주의가 필요합니다. 사용 예 참조. *문자열에 [[문자 참조]]는 사용할 수 없습니다. 사용할 경우 예상치 못한 오류가 발생할 수 있습니다. *번호는 왼쪽에서 1부터 세며, 500까지 지정할 수 있습니다. 1미만, 500 초과, 빈 값, 미지정의 경우에는 오류 메시지를 출력합니다. *오류 메시지가 출력되는 경우, 해당 글은 숨은 분류인 [[:분류:문자열 처리 틀이 잘못 쓰인 글]]에 들어갑니다. ===사용 예=== 간단한 사용 예: {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||style="padding: 1em;"|결과 |- |style="padding: 1em;"|<code><nowiki>{{str index | ABC XYZ | 5 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | ABC XYZ | 5 }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str index | ABC XYZ | 1 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | ABC XYZ | 1 }}</code> |} 주어진 문자열 안의 공백( )도 한 문자로 취급되며, 연속된 공백도 그 수 만큼 문자로 취급됩니다. 단, 출력에서 공백이 사라지거나 '&#32;'라는 문자열로 처리될 수도 있습니다. 다음 예를 참고하세요. {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||style="padding: 1em;"|결과 |- |style="padding: 1em;"|<code><nowiki>{{str index | 3</nowiki> <nowiki>spaces here. | 5 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | 3 spaces here. | 5 }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str index | 3</nowiki> <nowiki>spaces here. | 4 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | 3 spaces here. | 4 }}</code> |- |style="padding: 1em;"|<code><nowiki>a{{str index | 3</nowiki> <nowiki>spaces here. | 4 }}c</nowiki></code>||style="padding: 1em;"|<code>a{{str index | 3 spaces here. | 4 }}c</code> |- |style="padding: 1em;"|<code><nowiki>{{str left | a{{str index | 3</nowiki> <nowiki>spaces here. | 4 }}c | 5 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | a{{str index | 3 spaces here. | 4 }}c | 5 }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str left | a{{str index | 3</nowiki> <nowiki>spaces here. | 4 }}c | 6 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | a{{str index | 3 spaces here. | 4 }}c | 6 }}</code> |} 만약 문자열에 등호(<nowiki>=</nowiki>)가 포함되어 있으면 틀 사용시 이름 있는 매개변수로 취급되기 때문에 오류가 생깁니다. 이를 방지하기 위해서는 이름 있는 매개변수를 사용하면 됩니다. 매개변수 이름으로는 1, 2를 쓰면 됩니다. 다음 예는 문자열 'ab=cde'의 세 번째 문자를 출력하고자 하는 코드입니다. {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||style="padding: 1em;"|결과||style="padding: 1em;"|설명 |- |style="padding: 1em;"|<code><nowiki>{{str index | 1= ab=cde | 2= 3 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | 1= ab=cde | 2= 3 }}</code>||style="padding: 1em;"| (올바른 예) 올바르게 동작함. |- |style="padding: 1em;"|<code><nowiki>{{str index | ab=cde | 3 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | ab=cde | 3 }}</code>||style="padding: 1em;"| (잘못된 예) 엉뚱한 결과가 출력됨. |} ===잘못된 사용 예=== 번호를 잘못 지정: {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||style="padding: 1em;"|결과 |- |style="padding: 1em;"|<code><nowiki>{{str index | ABC XYZ | 10 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | ABC XYZ | 10 }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str index | ABC XYZ | 0 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | ABC XYZ | 0 }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str index | ABC XYZ | }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | ABC XYZ | }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str index | ABC XYZ }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | ABC XYZ }}</code> |} 지원하지 않는 문자열: {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||style="padding: 1em;"|결과 |- |style="padding: 1em;"|<code><nowiki>{{str index | 소년이여 야망을 가져라 | 7 }}</nowiki></code>||style="padding: 1em;"|<code></code>{{str index | 소년이여 야망을 가져라 | 7 }} |- |style="padding: 1em;"|<code><nowiki>{{str index | àçé | 2 }}</nowiki></code>||style="padding: 1em;"|<code></code>{{str index | àçé | 2 }} |} [[문자 참조]] 사용은 지원되지 않음: {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||style="padding: 1em;"|결과||style="padding: 1em;"|설명 |- |style="padding: 1em;"|<code><nowiki>{{str index | a&nbsp;c | 3 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | a c | 3 }}</code>||style="padding: 1em;"| 'c'를 의도한 입력. |- |style="padding: 1em;"|<code><nowiki>{{str index | a&nbsp;c | 8 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | a c | 8 }}</code>||style="padding: 1em;"| 문자참조 &nbsp;가 6자의 문자로 처리되어 출력됨. |} :*[[수치 문자 참조]]를 사용할 경우 예상치 못한 심각한 오류가 발생할 수 있습니다. ==기술적인 내용== 문자열에 위키 마크업 표현이 사용될 경우 잘못 처리될 수 있습니다. <nowiki> 태그는 내부적으로 고유의 제어문을 통해 처리됩니다. 제어문은 제어 문자 \x07([[:en:Bell character|BELL]])과 'UNIQ'로 시작하여 'QINU'와 제어 문자로 끝나는 43바이트 길이의 문자열입니다. 이 제어문은 최종적으로 생성된 HTML 페이지에서는 표시되지 않아야 정상입니다. 그러나 다음과 같이 제어문이 그대로 출력될 수도 있습니다. [[bugzilla:22555|버그질라:22555]] 참고. {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||style="padding: 1em;"|결과||style="padding: 1em;"|설명 |- |style="padding: 1em;"|<code><nowiki>{{str index | a<nowiki/>bc | 3 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | a<nowiki/>bc | 3 }}</code>||style="padding: 1em;"| 'c'를 의도한 입력이나 제어문 시작 부분의 'U'가 출력됨. |- |style="padding: 1em;"|<code><nowiki>{{str index | a<nowiki/>bc | 23 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | a<nowiki/>bc | 23 }}</code>||style="padding: 1em;"| 제어문의 일부가 출력됨. |- |style="padding: 1em;"|<code><nowiki>{{str index | a<nowiki/>bc | 43 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | a<nowiki/>bc | 43 }}</code>||style="padding: 1em;"| 제어문 마지막 부분의 'U'가 출력됨. |- |style="padding: 1em;"|<code><nowiki>{{str index | a<nowiki/>bc | 45 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | a<nowiki/>bc | 45 }}</code>||style="padding: 1em;"| 제어문 43바이트가 끝나고 'b'가 출력됨. |} <nowiki>의 경우와 달리, HTML 주석이나 <noinclude>, <includeonly> 등의 위키 마크업 표현은 올바르게 처리됩니다. 이는 해당 표현이 매직워드까지 넘어가지 않고 틀 자체에서 전처리되기 때문입니다. {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||style="padding: 1em;"|결과 |- |style="padding: 1em;"|<code><nowiki>{{str index | a<noinclude/>bc | 3 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | a<noinclude/>bc | 3 }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str index | a<!-- 주석 -->bc | 3 }}</nowiki></code>||style="padding: 1em;"|<code>{{str index | a<!-- 주석 -->bc | 3 }}</code> |}<includeonly>[[분류:문자열 처리 틀]]</includeonly>
요약:
조무위키에서의 모든 기여는 CC BY-SA 4.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
조무위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
이 문서에서 사용한 틀:
틀:Str index
(
편집
)
틀:Str left
(
편집
)