[첫화면으로]UseModWiki소스수정/문자열일괄치환예시

마지막으로 [b]

1. 개요
2. 간단한 텍스트 치환
2.1. "morning"을 "evening"으로
2.2. 대소문자 구분 없이
3. 찾을 문자열에 정규 표현식 사용
3.1. "morning" 또는 "afternoon"을 "evening"으로
3.2. "{{{c"를 "{{{cpp"로
4. 치환할 대상을 동적으로 바꿈
4.1. "{{{perl"을 "{{{#!vim perl"로
4.2. "morning"을 "MORNING"으로, "evening"을 "EVENING"으로
4.3. 매크로의 인자 위치 바꾸기
5. 관련 링크
6. 사용자 의견

1. 개요

/문자열일괄치환 기능을 사용해서 모든 페이지에서 원하는 문자열을 찾아서 바꾸는 예문을 적어둔다. 그래야 유즈모드ext버전의 훌륭함을 널리 알릴 수 있다주인장도 나중에 또 필요할 때 참고할 수 있다.

Perl/정규표현식을 알면 알수록 편하다.

2. 간단한 텍스트 치환

2.1. "morning"을 "evening"으로

모든 페이지에 있는 "morning"이라는 문자열을 "evening"으로 바꾸고자 한다.

뭐 당연히,
Old: morning
New: evening
그 외 옵션 전부 off

정확히 "morning"이라는 단어만 "evening"으로 바뀐다.

2.2. 대소문자 구분 없이

Morning, morNIng, MORNING, 가리지 않고 전부 evening으로 바꾸고 싶다면 "Ignore case" 옵션에 체크하면 된다.
Old: morning
New: evening
Ignore case : on

3. 찾을 문자열에 정규 표현식 사용

/문자열일괄치환 화면에서 "Use regular expression" 옵션을 체크하면 Old string 필드에 Perl/정규표현식을 쓸 수 있다. 정규표현식 상태에서는 다음 캐릭터들은 특별한 의미를 지닌다.

3.1. "morning" 또는 "afternoon"을 "evening"으로

물론 "morning"을 "evening"으로 바꾸고 다시 "afternoon"을 "evening"으로 또 바꿔도 되지만... :-)

Old: morning|afternoon      "|"는 OR의 의미이다. 
New: evening
Use regular expression: on

3.2. "{{{c"를 "{{{cpp"로

단순하게 바꾸어 버리면, 기존에 있던 "{{{cpp"가 "{{{cpppp"가 되어 버리는 문제가 있다. 여러 가지 방법이 있겠지만, 간단하게는 "{{{c 또는 {{{cpp 를 {{{cpp 로" 바꾸면 되겠다.
Old: \{\{\{cpp|\{\{\{c
New: {{{cpp                 New string 쪽에는 "\{"라고 적어주지 않아도 된다.
Use regular expression: on
이 때 주의할 점은 cpp를 "|"의 왼쪽에 써야 한다. c|cpp 라고 쓰면 "cpp"라는 문자열을 봤을때 첫글자 c가 정규표현식의 c와 일치하기 때문에 결국 "cpppp"가 되어 버린다.

위의 예에서 "\{\{\{"가 중복해서 나오니까, 아래와 같이 쓸 수도 있다.
Old: \{\{\{(cpp|c)          괄호를 써서 그룹을 지어 줌

4. 치환할 대상을 동적으로 바꿈

4.1. "{{{perl"을 "{{{#!vim perl"로

단지 perl에 대해서만 그렇게 바꾼다면 단순 치환을 하면 되지만, 여러 가지 언어에 대해 전부 동일한 형태로 바꿔주고 싶다면?
 {{{perl -> {{{#!vim perl
 {{{cpp  -> {{{#!vim cpp
 {{{java -> {{{#!vim java

물론 각각에 대해 단순 치환을 반복해도 되지만, 어딘가 {{{javascript 가 숨어 있는 걸 잊었을 수도 있고...

Old: \{\{\{([A-Za-z]+)
New: {{{#!vim $1
Use regular expression: on
Evaluate: on

4.2. "morning"을 "MORNING"으로, "evening"을 "EVENING"으로

이런 치환이 필요할 일이 흔하지야 않겠지만...

Evaluate 옵션을 켜면, 다른 함수를 호출할 수도 있다.

Old: (morning|evening)
New: uc($1)                    uc()는 인자로 받은 문자열을 대문자로 바꿔서 반환하는 함수
Use regular expression: on
Evaluate: on

4.3. 매크로의 인자 위치 바꾸기

<blog_includeperiod(Diary/List,2007-01-01,2007-01-31)> 이걸 뒤의 날짜를 서로 바꿔서
<blog_includeperiod(Diary/List,2007-01-31,2007-01-01)> 이렇게 바꾸고 싶다면

Old: (<blog_includeperiod\(Diary/List,)(.+?),(.+?)\)>   매크로 자체에 있던 괄호는 백슬래쉬를 붙여줘야 함
New: $1.$3.','.$2.')>'           두번째 괄호와 세번째 괄호에 해당하는 내용의 순서를 바꿔준다
                                      마침표는 좌우의 문자열을 연결하라는 의미
Use regular expression: on
Evaluate: on

5. 관련 링크

6. 사용자 의견

이름:  
Homepage:
내용:
 

위키위키분류 컴퓨터분류

마지막 편집일: 2007-3-7 9:33 pm (변경사항 [d])
1359 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기