'문자열자르기'에 해당되는 글 1건
- 2023.01.31 python 한글 반영해서 byte단위로 문자열 잘라주는 함수
2023. 1. 31. 16:55
python 한글 반영해서 byte단위로 문자열 잘라주는 함수
2023. 1. 31. 16:55 in 개발관련/기타
버그나 문제점이 좀 있긴 하겠지만,
일단 전체적인 틀은 아래와 같음
실 적용에는 좀더 제대로 고민해서 만들 필요는 있을 것임
import re
# 문자열을 바이트 단위로 슬라이스 해주는 함수
# iByteStart = 시작위치, iByteEnd = 종료위치, strTarget = 자를 문자열, iHangulSize = 한글을 몇바이트로 계산할지 여부(기본값2)
def getSliceByte(iByteStart, iByteEnd, strTarget, iHangulSize = 2):
strReturn = ""
iCurrPos = 0
lstTarget = list(strTarget)
for char in lstTarget:
if(iByteStart <= iCurrPos and iByteEnd > iCurrPos):
strReturn = strReturn + char
# print(f"strReturn = {strReturn}")
elif (iByteEnd < iCurrPos):
break
if(len(re.findall(u'[\u3130-\u318F\uAC00-\uD7A3]+',char)) > 0):
# 한글임
iCurrPos = iCurrPos + iHangulSize
else:
iCurrPos = iCurrPos + 1
# print(f"iCurrPos = {iCurrPos}")
return strReturn
추가 : chat GPT가 한글을 파악하는 다른 방법을 알려줌... 이게 정규식보다 빠르고 좋을것 같음 아래 함수 응용해서 위의 소스 수정하면 될듯
def is_korean(char):
# Check if the character is a Korean character
return ord(char) >= ord('가') and ord(char) <= ord('힣')