두 번째 인수에 지정된 위치에서 시작하고 세 번째 인수에 길이가 지정된 첫 번째 인수의 부분 문자열을 반환합니다.
string substring(string, number, number?)
주의
이 문자열의 각 문자에는 숫자로 나타낸 위치가 있습니다. 즉, 첫 번째 문자의 위치는 1, 두 번째 문자의 위치는 2와 같은 방식으로 숫자 위치가 지정됩니다.
세 번째 인수를 지정하지 않으면 두 번째 인수에 지정된 위치에서 시작하여 문자열 끝까지 계속되는 부분 문자열을 반환합니다.
인수가 문자열 형식이 아닌 경우 먼저 string() 함수를 사용하여 문자열로 변환된 다음 이 변환 결과가 평가됩니다.
경고
이 함수에 인수로 전달되는 노드 집합의 문자열 변환으로 인해 예기치 않은 결과가 나타날 수 있습니다. 자세한 내용은 string 함수을 참조하십시오.
이 함수는 대/소문자를 구분합니다.
예제
다음 함수 호출은 "234"를 반환합니다.
substring("12345",2,3)
다음 함수 호출은 "2345"를 반환합니다.
substring("12345",2)
반환된 부분 문자열에는 문자 위치가 두 번째 인수를 반올림한 값보다 크거나 같은 문자가 포함되고 세 번째 인수를 지정한 경우 문자 위치가 두 번째 인수를 반올림한 값과 세 번째 인수를 반올림한 값의 합계보다 작은 문자가 포함됩니다. 여기에는 표준 IEEE 754 규칙을 준수하는 비교와 더하기 연산이 사용됩니다. 반올림은 round()
함수를 호출하여 수행됩니다.
다음 예제는 예외적인 경우를 나타냅니다.
substring("12345", 1.5, 2.6)
은 "234
"를 반환합니다.
substring("12345", 0, 3)
은 "12
"를 반환합니다.
substring("12345", 0 div 0, 3)
은 ""
를 반환합니다.
substring("12345", 1, 0 div 0)
은 ""
를 반환합니다.
substring("12345", -42, 1 div 0)
은 "12345"
를 반환합니다.
substring("12345", -1 div 0, 1 div 0)
은 ""
를 반환합니다.
이 예제에서는 앞의 substring()
식을 보여 줍니다.
XML 파일
없음. XSLT 파일은 자신을 호출합니다.
XSLT 파일(substring.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
substring("12345",2,3) =
<xsl:value-of select='substring("12345",2,3)'/><br/>
substring("12345",2) =
<xsl:value-of select='substring("12345",2)'/><br/>
substring("12345", 1.5, 2.6) =
<xsl:value-of select='substring("12345", 1.5, 2.6)'/><br/>
substring("12345", 0, 3) =
<xsl:value-of select='substring("12345", 0, 3)'/><br/>
substring("12345", 0 div 0, 3) =
<xsl:value-of select='substring("12345", 0 div 0, 3)'/><br/>
substring("12345", 1, 0 div 0) =
<xsl:value-of select='substring("12345", 1, 0 div 0)'/><br/>
substring("12345", -42, 1 div 0) =
<xsl:value-of select='substring("12345", -42, 1 div 0)'/><br/>
substring("12345", -1 div 0, 1 div 0) =
<xsl:value-of select='substring("12345", -1 div 0, 1 div 0)'/>
</xsl:template>
</xsl:stylesheet>
서식이 지정된 출력
substring("12345",2,3) = 234 substring("12345",2) = 2345 substring("12345", 1.5, 2.6) = 234 substring("12345", 0, 3) = 12 substring("12345", 0 div 0, 3) = substring("12345", 1, 0 div 0) = substring("12345", -42, 1 div 0) = 12345 substring("12345", -1 div 0, 1 div 0) =
프로세서 출력
<?xml version="1.0" ?> substring("12345",2,3) = 234<br /> substring("12345",2) = 2345<br /> substring("12345", 1.5, 2.6) = 234<br /> substring("12345", 0, 3) = 12<br /> substring("12345", 0 div 0, 3) = <br /> substring("12345", 1, 0 div 0) = <br /> substring("12345", -42, 1 div 0) = 12345<br /> substring("12345", -1 div 0, 1 div 0) =