# -*- coding: utf-8 -*- """ Created on Sun Oct 6 18:42:38 2024 @author: Arnd Helmut Hafner """ import re from re import compile, search from tags import Tags tags = Tags() def searchpreparation(string,sufflate,prefix = '',suffix = ''): ''' Inserts regex into strings in order to suppress interference of irregular symbols during search Parameters ---------- string : str searched string sufflate : str Regex inserted between the constituent characters of the string prefix : str, optional Regex inserted before the string. The default is ''. suffix : str, optional Regex inserted behind the string. The default is ''. Returns ------- string: str ''' #記号交じりの原文から文字列を検索するために、文字列を正規表現に置き換える #string = 検索したい文字列 #prefex = 原文では検索したい文字列の前にあり得る記号のリストの正規表現 #sufflate = 検索したい文字列の間に出現しうる記号のリストの正規表現 #suffix = 検索したい文字列の後ろに出現しうる記号のリストの正規表現 string = re.findall('.',string) tempstring = prefix + string[0] for c in range(1,len(string)): tempstring += sufflate + string[c] string = tempstring + suffix return(string) def suppliedillegchar(char): """ 文脈に基づいて補釈された文字のエンコーディングを行う Parameters ---------- char : str 一文字 Returns ------- char : str '' """ char = tags.tagdict['suppliedillegb'] + char + tags.tagdict['suppliede'] return(char) def hyphenjokyo(string,tag1b,tag1e,tag2b ='',tag2e = ''): """ 字1(字2-字3)における"字2-字3"の部分にタグを付ける Parameters ---------- string : str タグ付け対象文字列 tag1b : str 字2を記述するタグ(始め) tag1e : str 字2を表現するタグ(終り) tag2b : str, optional 字3を記述するタグ(始め). The default is ''. tag2e : str, optional 字3を記述するタグ(終り). The default is ''. Returns ------- string = str """ okikae = compile('(.)\\-(.)') string = okikae.sub('{}{}\\g<1>{}{}\\g<2>{}{}'.format(tags.tagdict['choiceb'],tag1b,tag1e,tag2b,tag2e,tags.tagdict['choicee']),string) return(string) def hatenashori(kakkomae,kakkonai): """ 読み換え等において、 疑問符が注記に混じっている時に、 疑問のエンコーディングをした上で、 疑問符を削除する Parameters ---------- kakkomae : str 釈読字 kakkonai : str 疑問符が混じっている読み換え等の注記 Returns ------- kakkomae : str kakkonai : str """ if re.search('^?', kakkonai):#釈読に対する疑問 kakkomae += tags.tagdict['certaintyreading'] kakkonai = re.sub('?','',kakkonai,1) if re.search('?\\-',kakkonai):#読み換え等に対する疑問("-"あり,前半) kakkonai = re.sub('?',tags.tagdict['certaintyreading'],kakkonai,1) if re.search('?$',kakkonai):#読み換え等に対する疑問("-"の有無を問わず、末尾の字) kakkonai = re.sub('?$',tags.tagdict['certaintyreading'],kakkonai,1) return(kakkomae,kakkonai) def kutoencoding(mojiretu): regex = '([。,、?!:;])' okikae = compile(regex) return okikae.sub('{}\\g<1>{}'.format(tags.tagdict['suppliedregb'],tags.tagdict['suppliede']),mojiretu)