소프트웨어 Emeditor 정규식 문의입니다. 3번째 영어일 경우 2번쩨 앞에 #붙이기
2021.01.15 07:24
Emeditor 정규식 문의입니다. 3번째 영어일 경우 2번쩨 앞에 #붙이기
첨부한 파일은 Emeditor에서 ‘파일 내 바꾸기’에서 ‘배치에 추가’로 만들어진 *.tsv 파일입니다. 이 파일에는 단어(들)과 단어들 사이에는 여백(스페이스가 아니고, 갑자기 이름이 생각이 안나네요 죄송합니다.)을 포함하여 구획이 7개가 되네요.
원하는 정규식은 이 파일에서 (on을 포함하여) 3번째 오는 단어가 전부 영어로 되어 있으면 2번째 오는 단어가 영어나 혹은 한글인데, 그 단어 앞에 #을 붙이는 것입니다.
도움을 부탁드립니다. Happy day!
on #Leibniz(Leibniz) Leibniz
on #Denne는 Dennett
on #데네트 Dennett
on #Dennett(Dennett) Dennett
예문
on Leibniz(Leibniz) Leibniz
on Denne는 Dennett
on 데네트 Dennett
on Dennett(Dennett) Dennett
on 폴레트 Paulette
on 델리아 Delia
on 클라우젤 Clauzel
on 베라Schmit Vera Schmidt
on 도널드 우즈 Danald Woods
on 이지도르 Isidor
on 존리트마이스터 John Rittmeister
on 리트마이스터 Rittmeister
on 고트먼 Gottman
on 고갱 Gauguin
on 간디 Gandhi
on 모한다스 Mohandas
on 가펑클 Garftinkel
on 가레피노 Garefino
댓글 [6]
-
입니다 2021.01.15 08:57
-
파풍초 2021.01.15 09:29
입니다님께, 바쁘신 시간에 도움을 주셔서 정말 감사드립니다.
위의 그림에서 expression 아래에 있는 수식을 사용하면 되는거지요?
고수의 설명은 하수에게는 참 어렵습니다. ㅠㅠ
한번 해보도록 하겠습니다. 감사합니다.
P.S. : replace를 잘 찾기 어렵네요.
-
파풍초 2021.01.15 09:55
emeditor에서 아래처럼 하니 그냥 그대로 입니다. ㅠㅠ
1. 찾기: /(on\s+)([a-zA-z]+)/g → 바꾸기; $1#$2
2. 찾기: (on\s+)([a-zA-z]+) → 바꾸기; $1#$2
2. 로하니 아래처럼 영어만 되는 것은 안되네요.
on #J사 John
on #Mi 사i Mich
on #N』, NJ,
on #ibmini femini on #ibrm form on #ideea idea on #r예술 『예술 on #s% self C
-
입니다 2021.01.15 10:56
실수로 소문자 z 를 넣었네요.
(on\s+)([a-zA-Z]+)
a-z 는 소문자
A-Z 는 대문자
위의 사이트에서 색깔이 희색인 것은 무시하시면 됩니다. 자체가 프롬프트니까요.
그리고 한글을 특수 문자로 해석하기 때문 \w 일 경우 한글은 검색 되지 않습니다.
emeditor 에서는 한글도 \w 범주에 포함해서 검색이 됩니다.
정규식 사용하는게 검색엔진마다 약간씩 차이가 있으니 위의 사이트는 참조로 하시면 됩니다.
아 제가 글을 잘못 읽었네요.
1on 2영어 3한글이나 영어
일때 2의 앞에 #을 붙히는 것이지요?
이해를 돕기 위해 같은 결과 나오는 것들 나열해 봤습니다.
\s*[가-힣]* 부분은 한글 사이에 공백이 있고 뒤에 영어가 오는 경우를 포함 합니다.
한글+영어+숫자+특수문자
(on\s+)([가-힣\x21-\x7e)]+\s*[가-힣]*)(\s+[a-zA-Z]+)
$1#$2$3
같은 거
(on\s+)([가-힣\!-\~)]+\s*[가-힣]*)(\s+[a-zA-Z]+)
같은 거 ㅋ
(on\s+)(\S+\s*[가-힣]*)(\s+[a-zA-Z]+)
regexr.com Emeditor Notepad2 모두 동작합니다.
-
입니다 2021.01.15 12:18
그리고 혹시나 해서 탐욕 수량자, 게으른 수량자에 대한 이해를 돕기 위한 게시글 링크 합니다.
https://blog.hexabrain.net/202
한 라인에 조건이 같은 게 여러개 븥어 있을 경우
<p>1</p><p>2</p>
탐욕 수량자는 통채로 묶어 버려서 1~2 까지 다 들어가게 되죠.
게으른 수량자는 하나 하나 아이템을 검색 합니다.
그래서 문장에 같은 조건이 나열 되어 있을 경우 ? 를 써야 하나씩 찾아서 바꿀 수 있습니다.
(on\s+)(\S+\s*[가-힣]*)(\s+[a-zA-Z]+)
(on\s+)(\S+?\s*[가-힣]*)(\s+[a-zA-Z]+)
이건 조건이 까다로운 경우기 때문에 ? 안 넣어도 되긴 합니다만 뭐 혹시나 개별로 동작 안 하는 경우가 있으면 저렇게 ? 붙이면 됩니다.
-
파풍초 2021.01.15 12:54
입니다님께, 너무 상세하게 잘 설명해 주셔서 제가 너무 송구하네요.
시간이 많이 들었을 터인데, 정말 감사드립니다.
주신 수식을 적용해 보니 잘 됩니다.
Happy day!
https://regexr.com/
이 사이트에서 모든 정규식을 확인 할 수 있습니다.
설명과 예제. 잘못된 정규식을 사용하면 잘못 된 점도 설명해 줍니다.
댓글이 길어져서 삭제합니다.