위키백과:봇/등록 신청/DaedanBot/4

== DaedanBot**
 봇의 이름: DaedanBot- 봇 운영자: Gomdoli4696- 프로그래밍 언어: AWB, Paws(일부)- 자동/수동: 자동 또는 반자동, 가끔 수동- 자세한 기능 설명
*# 분류 필요를 부착합니다.
*# 틀의 인수 대체 작업을 하기도 합니다. 특수:차이/27259782 외.
*# 분류 대체 작업도 합니다. 특수:차이/27251100 외.
*# 기타 잡일.- 봇 플래그가 있는 다른 언어판의 봇: 일본어판. ( 사용자 권한 기록,  봇 등록 신청)- 추가 정보 (임의): 봇 편집 요청 등에서 봇이 필요한 부분이 많이 보이고 있으나 작업 시간 때문에 처리를 못한 적이 있었습니다. 또 최근 바뀜에 노출되지 않는다는 점을 이용해 이전에 잠시 했다가 중단했던, 계정명 변경 권고 틀을 푸는 작업을 진행해보려고 합니다.
— Daedan (토론) 2020년 9월 10일 (목) 17:24 (KST)

**토론**
2020년 8월 말이나 그 이후에 신청하겠습니다. — 와정말대단하다 (토론) 2020년 6월 1일 (월) 21:33 (KST)
글 달아주실 때 핑해주시면 감사하겠습니다. — Daedan (토론) 2020년 9월 10일 (목) 17:24 (KST)
분류 필요 달기는 이미 TedBot이 맡고 있는 것으로 Raccoon Dog님께 들었습니다. 그렇다면 역할이 중복되는데 이런 작업을 대단봇으로 하시려는 이유가 있나요? --White.t. 2020년 9월 10일 (목) 17:54 (KST)
: 자주는 안합니다만 TedBot도 상시 가동되는 것은 아니기에 제가 오전에 봇을 켜면 몇개 작업할 것이 있더군요. — Daedan (토론) 2020년 9월 10일 (목) 18:22 (KST)
::그렇군요. --White.t. 2020년 9월 10일 (목) 19:26 (KST)
봇 편집 요청임을 전제로 하고 문제를 내보겠습니다.
문서 내용에는
http://example.org/files/img/43543/benzene.png
https://example.org/files/img/16475/16-dimethylcyclohexene.jpg
https://example.org/files/video/3221/int'l_union_introduction.avi
http://example.org/files/video/93821/how_to_learn_biology.mp4
http://example.org/files/img/13943/methyl-group.png
http://example.org/files/img/2324/fractionattr.bmp?width=640&length=480
와 같이 사이트 주소가 있습니다. 이를  https://example.org/(img or video)/(확장자)/(파일 이름)?num=(숫자)와 같은 형식으로 모두 바꾸고 싶습니다.
예시:
http://example.org/files/img/12345/helloworld.jpg → https://example.org/img/jpg/helloworld.jpg?num=12345
질문 1. 정규 표현식으로 어떻게 표현할 수 있습니까?
질문 2. 정규 표현식으로 가져온 그룹(괄호 ( ) 로 묶은 특정 문자열을 말합니다.)을 매치된 순서대로 $1, $2, $3 ... 이라 하자. 그렇다면 예시와 같이 바꾸는 방법을 그룹을 통해 설명하시오. (단, 사이트 주소는 모두 한 줄에 하나씩 나열되어야 한다.)
오토위키브라우저에서도 또한 그렇고 위키백과는 문자열을 다루는 곳이니 정규 표현식에 대해 알고 있어야 된다고 생각합니다. 요즘 오토위키브라우저 도움말을 통해 습득한 후 봇 계정을 생성하여 봇을 가동하는 것으로 아는데 봇 플래그를 부여받기 전에 이런 것으로 기본 지식을 테스트해서 통과해야 봇을 가동하는 사용자에 대한 신뢰감이 늘어날 것 같습니다. --Raccoon Dog (talk) 2020년 9월 11일 (금) 16:05 (KST)
질문 1에 대해 답변을 하겠습니다.
https?://example.org/files/(img|vidio)/(\d+)/(.+).(\w{3})
 → 
:: 여기에서  의 ?width=640&length=480 부분은 어떻게 해야 하는지 자세하게 말씀을 해주지 않으셔서 어떻게 해야 하는지 파악하지 못했습니다.
질문 2의 경우- https?://example.org/files/(img|vidio)/(\d+)/(.+).(\w{3}) 부분에서
*# 먼저 (img|vidio)는 이미지와 비디오 파일 형식을 가져옵니다. $1로 불러올 수 있습니다.
*# (\d+)는 숫자를 가져옵니다. $2로 불러올 수 있습니다.
*# (.+)는 확장자를 제외한 파일 이름을 가져옵니다. $3으로 불러옵니다.
*# (\w{3})은 세 글자의 확장자를 가져옵니다. 마찬가지로 $4로 불러옵니다.
*# https?는 http와 https 모두 거릅니다.- 부분에서
**각 배치에 맞게 그룹을 배열합니다.
이상입니다. 문제가 있을 경우 지적해 주세요. — Daedan (토론) 2020년 9월 11일 (금) 19:35 (KST)
답변 잘 봤습니다.
# ?width=640&length=480의 경우 파일 이름 뒤에 붙는 단순 URL 파라미터이기 때문에 바꾸는 과정에서 따로 처리할 필요가 없습니다.
# 정규 표현식에서: example.org라 하셨는데 이런 경우 주소가 example가org 이더라도 정규 표현식에 따라 매치됩니다. 따라서 100 % 정확하게 걸러지지 않습니다. 다음 답변에서 올바르게 수정해주시기 바랍니다.
마지막 질문 하겠습니다.
질문 3 : 해당 정규 표현식과 그룹 배열에서 다음과 같은 조건을 만족하고 제대로 작동되도록 수정하시오.
: (가) 정규 표현식의 \d+ 에서 +를 사용하지 않는다.
: (나) 정규 표현식의 . 에서  를 사용하지 않는다.
: (다) 각 그룹 $1, $2, $3, $4는 한 번만 사용하도록 한다.
--Raccoon Dog (talk) 2020년 9월 11일 (금) 20:23 (KST)
example.org에서 .이 문자열 지정이 아닌 그냥 점으로 인식되도록 하려면 .을 사용하면 되겠습니다만 그러면 (나)에 걸리고, 숫자에서 +를 사용하지 않으면 어떻게 하는지 아직 모르겠습니다  — Daedan (토론) 2020년 9월 12일 (토) 09:30 (KST)
Raccoon Dog 젝 작성했던 것에 틀린 부분은 . 말고 더는 없었나요? 제가 질문 3은 잘 모르겠네요  — Daedan (토론) 2020년 9월 12일 (토) 11:32 (KST)
:Gomdoli4696 정규 표현식에 정답이 있고 오답이 있진 않습니다. 다만 어떻게 짜느냐에 따라 얼마나 코드가 최적화되는지 등이 달려있습니다. 따라서  도 그 안에 있는 문자들 중 하나가 포함되어있다는 뜻과 같으니 .를 쓰셔도 상관은 없습니다. 허나 여기서 제가 질문 3을 내드린 이유는 정규 표현식의 각종 표현들을 숙지하고 있냐를 관건으로 보기 위함이었습니다. 그 중 (다)는 평소에도 Daedan 님이 짜신 정규 표현식을 보았을 때 (\s분류 필요|\sSpeedy)와 같은 형식처럼 묶을 수 있는 부분을 일일이 전개하시는 것을 보고 효율적인 그룹화를 만들 수 있는지 테스트하기 위해 낸 문제입니다. 질문 1과 질문 2에 대해서는 잘 답변해주셨습니다.
:: (가) \d+ 대신 해당 주소들에는 숫자가 4개부터 5개까지 있으니 \d{4,5}로도 치환할 수 있습니다.
:: (나) 정규 표현식에서 .을 일반 문자로 취급시키기 위해서 백 슬러시 (\)를 삽입해 이스케이프 문자로 만듭니다. 따라서 단순하게 .는 \.로 쓰면 됩니다.
:: (다) 각 그룹 중 $1은 이미지 또는 비디오 경로를 불러오고, $2는 숫자를 불러옵니다. 따라서 두 그룹은 수정할 필요가 없으나 $3.$4를 더 간단하게 바꿀 수 있습니다. (.+).(\w{3}) 대신에 (.+\.(\w{3})) 라고 하면, $3은 파일 이름이 되고 $4는 확장자 이름이 됩니다.
:: 참고: (단, 사이트 주소는 모두 한 줄에 하나씩 나열되어야 한다.) 라는 조건이 있었습니다. 따라서 그룹을 배열하여 원하는 문자열을 만든 이후 \n라는 개행 문자를 삽입하여야 한 줄에 한 주소씩 들어가게 됩니다.
: 세 조건에 만족하는 정규 표현식과 그룹 배열은 따라서
::https?://example\.org/files/(img|video)/(\d{4,5})/(.+\.(\w{3}))
::
:가 되겠습니다. --Raccoon Dog (talk) 2020년 9월 12일 (토) 16:27 (KST)
:: 대괄호보다 역슬러시가 더 쉬운 방법이었군요. 모두 감사합니다. — Daedan (토론) 2020년 9월 14일 (월) 16:07 (KST)
  현재 진행하고 있는 작업(예: 특수:차이/27587516)은 아래 정규식을 사용하였습니다.
\\\분류):위키백과 봇 등록 신청 글.+\\\\n
 — Daedan (토론) 2020년 9월 16일 (수) 15:05 (KST)
 +분류 대체 작업은 파이썬을 이용하려고 하고 있습니다. — Daedan 2020년 11월 13일 (금) 15:57 (KST)
: pwb.py category move -pt:60 -inplace를 사용했습니다. category.py의 move 기능을 사용합니다. — Daedan 2020년 11월 13일 (금) 19:47 (KST)
해당 봇 운용자가 현재 활동을 중단한 것으로 확인되고, 봇 운용에 대하여 아직까지 확신이 없어 승인을 하지 아니하는 것으로 결정하여 요청을 닫습니다. --Sotiale (토론) 2021년 3월 20일 (토) 14:23 (KST)