AutoHotKey(오토핫키) 설명서 RegExReplace()

Posted by 발전소장
2014. 8. 14. 13:52 AutoHotKey/Commands

RegExReplace()

문자열중의 정규 표현 패턴에 일치하는 개소를 다른 문자열에 치환해 돌려준다

RegExReplace(Haystack, NeedleRegEx [, Replacement = "", OutputVarCount = "", Limit = -1, StartingPos = 1])

Parameters

인수명설명
Target치환 대상이 되는 문자열
Pattern 검색·치환하는 정규 표현 패턴.자세한 것은정규 표현의 항을 참조.
옵션은 패턴의 전에 「)」(으)로 단락지어 기술한다(례:「im)\.jpe?g$」)
옵션이 없는 경우는, 「)」(은)는 불요.(례:「\.JPE?G$」)
Replacement 패턴에 일치한 개소에 대신해에 삽입하는 문자열을 지정.
이하의 것이 포함되어 있는 경우, 해당하는 문자열이 파묻힌다.
$0
정규 표현 전체에 매치한 문자열
$1...$9
${1}...${99}
(...)」(으)로 그룹화 된 정규 표현에 마지막에 매치한 문자열
「(」의 기술된 차례로 「1」(으)로부터 번호가 차여 간다
${name}
(?P<name>...)」(으)로 이름 그룹화 된 정규 표현에 마지막에 매치한 문자열
$U{name}
name그리고 지정된 서브 매치 문자열의 알파벳을 모두 대문자로 변환한 것
name에는0~99의 숫자도 사용할 수 있다.
$L{name}
name그리고 지정된 서브 매치 문자열의 알파벳을 모두 소문자로 변환한 것
$T{name}
각 서브 매치 문자열내의 각 단어의 선두의 알파벳을 대문자에, 나머지의 알파벳을 소문자로 변환한 것
$$
단순한 「$」
다만, 상술의 서브 매치 표현과 오인식 될 가능성이 없는 것은, 이와 같이 이스케이프 하지 않아도 되다.
OutputVarCount 치환을 한 수를 격납하는 변수를 지정한다
Limit 치환을 실시하는 회수의 상한을 지정한다.
「-1」(을)를 지정하면, 존재하는 모든 일치 개소가 치환된다. 「1」이상의 정수를 지정하면, 선두로부터 지정한 수까지의 일치 개소만이 치환된다.
StartingPos Target안에서의 검색을 개시하는 위치.선두는 「1」.
Target의 문자수보다 큰 값을 지정했을 경우는, 하늘의 문자열(Target의 마지막0문자의 범위)에 대해 검색·치환을 한다(통상은 어디도 치환되지 않는다).
0이하의 값을 지정했을 경우는, 문자열의 말미로부터 지정 문자 몇분의 범위가 검색된다.
예를 들면, 「0」(을)를 지정했을 경우는, 문자열의 마지막1문자만이, 「-1」(을)를 지정했을 경우, 뒤의2문자가 검색된다.
Target의 길이를 넘는 경우는,Target전체가 검색된다.
생략시는 「1」(Target의 선두로부터 검색).

돌아가 값

치환한 후의 문자열
어떠한 에러가 발생했을 경우는,Target하지만 그대로 돌아간다.

ErrorLevel

정상적으로 검색·치환을 했을 경우는, 「0」.
에러로 검색·치환을 하지 않았던 경우는, 이하의 값이 된다.

Compile error N at offset M:Description
정규 표현의 문법 에러. N(은)는 에러 번호,M(은)는 문제의 발생한 개소(Pattern의 선두가 「1」),Description(은)는 간단한 설명.
그 외의 부의 수치
매치 처리중에 발생한 에러.
정규 표현 자체는 올바르지만, 처리에 필요한 메모리가 확보 다 할 수 없는등의 문제가 있었을 때에 발생한다.

Related

RegExMatch(), SetTitleMatchMode RegEx, StringReplace, InStr()

Examples

NewStr := RegExReplace("abc123123", "123$", "xyz")  ; Returns "abc123xyz" because the $ allows a match only at the end.
NewStr := RegExReplace("abc123", "i)^ABC")  ; Returns "123" because a match was achieved via the case-insensitive option.
NewStr := RegExReplace("abcXYZ123", "abc(.*)123", "aaa$1zzz")  ; Returns "aaaXYZzzz" by means of the $1 backreference.
NewStr := RegExReplace("abc123abc456", "abc\d+", "", ReplacementCount)  ; Returns "" and stores 2 in ReplacementCount.