StringGetPos
문자열중의 특정의 문자열의 위치를 검색한다
StringGetPos, OutputVar, InputVar, SearchText [, L#|R# , Offset]
Parameters
인수명 | 설명 |
---|
OutputVar
|
검색된 위치를 격납하는 변수명.
문자열의 처음은 「0」로서 센다.
발견되지 않았던 경우는, 「-1」(이)가 된다.
|
InputVar
|
문자를 검색하는 대상의 문자열이 격납된 변수명.
|
SearchText
|
검색하는 문자열.
StringCaseSense그리고 설정하지 않는 한, 대문자 소문자의 차이는 무시된다.
|
L#|R#
|
SearchText에 매치하는 부분이 다수 있는 경우, 몇번째의 출현 위치를 취득하는지를 지정할 수 있다.
생략시는, 제일 최초의 출현 위치를 취득한다.
「1」(이)나 「R」(을)를 지정하면, 제일 마지막 출현 위치를 취득할 수 있다.
「L2」(와)과 같이 「L」에 이어 숫자를 지정하면, 최초부터 지정 번째의 출현 위치를 취득할 수 있다.
「R3」(와)과 같이 「R」에 이어 숫자를 지정하면, 최후로부터 지정 번째의 출현 위치를 취득할 수 있다.
SearhText의 출현수가L(이)나R에 이어 지정한 수보다 적었던 경우, 발견되지 않았다 보여OutputVar(은)는 「-1」(이)가 된다.
|
Offset |
검색시, 최초의Offset문자분만큼 무시해 검색을 시작한다.
생략시는 「0」.
L#|R#그리고 최후로부터 검색하는 지정이 되어 있는 경우, 마지막Offset문자분을 날려 검색을 시작한다.
|
ErrorLevel
SearchText하지만 발견되지 않았던 경우는 「1」, 발견되었을 경우는 「0」
Remarks
StringMid(와)과 달라, 문자열의 처음은 「0」문자눈으로서 처리된다.
L#|R#(이)나Offset옵션으로의 지정에 관계없이, 반드시InputVar의 선두로부터의 위치가 취득된다.
파일의 패스를 분해하고 싶은 경우,SplitPath(을)를 사용하는 편이 편리.
SearchText(이)나ReplaceText에 반각 스페이스나Tab문자를 지정하고 싶은 경우, 편입 변수%A_Space%(이)나%A_Tab%(을)를 사용한다.
Related
IfInString, StringCaseSense, SplitPath, StringLeft, StringRight, StringMid, StringTrimLeft, StringTrimRight, StringLen, StringLower, StringUpper, StringReplace, if var is type
Examples
Haystack = abcdefghijklmnopqrs
Needle = def
StringGetPos, pos, Haystack, %Needle%
if pos >= 0
MsgBox, The string was found at position %pos%.
; Example #2:
; Divides up the full path name of a file into components.
; Note that it would be much easier to use StringSplit or a
; parsing loop to do this, so the below is just for illustration.
FileSelectFile, file, , , Pick a filename in a deeply nested folder:
if file <>
{
StringLen, pos_prev, file
pos_prev += 1 ; Adjust to be the position after the last char.
Loop
{
; Search from the right for the Nth occurrence:
StringGetPos, pos, file, \, R%A_Index%
if ErrorLevel <> 0
break
length := pos_prev - pos - 1
pos_prev := pos
pos += 2 ; Adjust for use with StringMid.
StringMid, path_component, file, %pos%, %length%
MsgBox Path component #%a_index% (from the right) is:`n%path_component%
}
}