Функция этой функции — перехватить указанную смешанную англо-китайскую строку и сохранить длину отображения равной единице. То есть перехватить один китайский иероглиф как два английских слова. Описание: Функция этой функции заключается в перехвате указанной смешанной англо-китайской строки и сохранении длины отображения равной единице. То есть перехватить один китайский иероглиф как два английских слова.
Назначение: обычно используется в списках отображения заголовков, чтобы избежать неравномерной вставки перехваченных строк.
программный код
Скопируйте код кода следующим образом:
'//A_strString строка для обработки
'//A_intLen основан на количестве английских символов
'//A_strAddString Если в A_strString при перехвате символов добавляется суффикс, например:..., он может быть пустым
функция CutString(byval A_strString,byval A_intLen,byval A_strAddString)
тусклый MM_objRe,MM_objMs,MM_objMh
dimMM_strCut,MM_intLen
setMM_objRe=новое регулярное выражение
MM_objRe.Global=true'глобальный поиск
MM_objRe.IgnoreCase=true' не чувствителен к регистру
MM_objRe.Pattern=[^/x00-/xff]
MM_intLen=A_intLen
если len(A_strString)<=A_intLen, то
MM_strCut=A_string
еще
MM_strCut=влево(A_strString,MM_intLen)
установите MM_objMs=MM_objRe.execute(MM_strCut)
если MM_objMs.count<>MM_intLen, то
для каждого MM_objMh в MM_objMs
если MM_objMh.FirstIndex<MM_intLen, то
MM_intLen=MM_intLen-1
еще
выход для
конец, если
следующий
еще
MM_intLen=MM_intLen/2
конец, если
MM_strCut=left(A_strString,MM_intLen) и A_strAddString
конец, если
CutString=MM_strCut
setMM_objRe=ничего
конечная функция
Это отличается от того, что сейчас популярно в Интернете. Регулярные выражения используются для получения символов, отличных от ANSI (по умолчанию здесь используются символы, не являющиеся ANSI. Если есть отклонения, регулярные выражения можно изменить для достижения цели). . Прежде всего, обратите внимание: указанная длина функции зависит от количества английских символов. То есть он обозначается как 10, что означает 10 английских или 5 китайских иероглифов.
Были сделаны две оптимизации:
Первый момент: получайте символы указанной длины напрямую, потому что будь то все китайские иероглифы или все английские, самой длинной является только длина всего английского языка, а символы, превышающие ее, являются абсолютно исключенными символами.
Второй момент: используйте регулярные выражения для поиска китайских символов в диапазоне и просматривайте только количество слов каждого китайского символа, что может минимизировать количество циклов.