공부/정규식

정규식 공부 - 3 (진행 중)

여우구이 2023. 8. 27. 18:13

이번에 할 것은 외자 이름 번역하는 방법에 대해서 알아보고 자 한다

번역 방법이 여러가지 있던데 일단 순서대로 연구해보자
 
https://arca.live/b/simya/80537761
위의 글에 도움을 좀 많이 받았다
 
case.1 꿀도르 방식
 
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=waltherp38&logNo=220289587716
 
처음에 연구할 방식은 꿀도르 블로그에 나와있는 방식이다
기존에 외자 이름 넣던 방식이라 유사하다
 

 
순서대로 분석해보자
@: 는 앞의 문장과 띄워주는 역할을 한다
 
#N, #M 는 카스미이 와 같이 번역 되는 것을 카스미가 로 번역 되게 바꿔 주는 역할을 한다고 한다
이때 #N은 사람 일 때 써주고 #M은 보통 명사와 같은 기타 품사인 경우, 즉 사람 이름 아니면 쓰면 된다고 한다
또한 #N, #M이 계산 되는 차수가 19010110로 이것보다 차수를 적게 써야한다고 한다
 
10000000은 차수인데 실제로는 천만보다 작은 차수를 써야 한글에 대응된다고 한다
 
0은 단순 치환을 한다는 뜻이다(정규식을 쓰려면 1)
 
이와 같이 @:, #N, #M, 을 제외하고는 기존에 쓰던 방법과 똑같다
근데 이걸로는 부족하다고 느끼니 공부를 하는 거지
이걸로 平等에서 平에 타이라를 넣었을 때 平等이라는 단어가 나오
 평등으로 해석되는 것이 아니라 타이라등으로 맨날 번역이 되어서 연구하는 거다
물론 내가 잘못 적용 했을 수도 있기는 한데 암튼 안 되서 연구하는 거다
 
case.2 정규식 이용하는 방식
 
https://arca.live/b/yuzusoft/20888473
 
다음 연구할 것은 정규식을 이용하여 번역하는 방식이다
 
([^一-龥])愛(?![一-龥])    $1@:아이#N    10000000    1
 
위를 분석 해보면
 
[一-龥]는 한자 전체를 뜻한다
따라서 [^一-龥]는 앞에가 한자가 아닌 것이 나왔을 경우 말한다
?!는 조사해보니 java에서 쓰이는 정규표현식으로 전방 부정형인 것 같다
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=simpolor&logNo=221217101166
https://junstar92.tistory.com/373
https://brunch.co.kr/@daejin/11
다음 2개 읽으면 대략적으로 이해할 수 있을 것 같다
근데 난 이해 못하겠음 ㅎㅎ
대략적으로 한자가 아닐 때 탐색은 하되 실제 탐색 되는 범위에는 포함되지 않는다 이런 뜻 같은데 잘 모르겠다
 
$1은 ([^一-龥])을 뜻하고
@: 앞은 문자와 띄운다
아이는 이름
#N은 이것이 사람 이름이다라는 뜻을
 
끝에 1은 정규식임을 뜻한다
 
이를 정리하면 愛 앞과 뒤가 한자가 아니면 아이로 번역하고 앞이나 뒤 중 1개라도 한자이면 아이로 번역 안 한다는 뜻이다
좋기는 하나 만약 앞에나 뒤나 히라가나나 가타가나가 나왔는데
이름으로 번역 되어야 하지 말아야 할 경우에도 아이로 번역된다는 단점이 있다
이를 막기 위해서 [^一-龥] 안에 원하는 한자를 추가를 써서 일일히 예외 해주면 해결이 된다
참고로 히라가나 범위는 ぁ-ん 가타가나의 범위는 ァ-ヶ라고 한다
범위 추가하는 방법은 1일차에서 공부했으니 모르면 참고
 
한자는 자동적으로 번역이 안 되고 앞 뒤 히라가나 필요한 경우만 제외하면 외자 이름 깔끔하게 번역되기 때문에
위의 경우 보다는 나아 보인다

한자는 자동적으로 번역이 안 되고 앞 뒤 히라가나 필요한 경우만 제외하면 외자 이름 깔끔하게 번역되기 때문에
위의 경우 보다는 나아 보인다

 

( Ehnd ).zip
0.02MB

 

누가 올린 외자 정규식 생성기

설명 있으니 읽어보는 것도


 
case. 3 꿀도르에 있는 특수문자 이용하는 방식
 
https://arca.live/b/yuzusoft/26673480?target=all&keyword=%EC%99%B8%EC%9E%90%EC%9D%B4%EB%A6%84&p=1
 
연구 귀찮아 졌으니 나중에
PreFilter_@Hdor 한글 치환 문자
아님 꿀도르 로그 보는 방법