Zalgoテキストの除去と削除方法
正規表現、Unicodeカテゴリ、様々なプログラミング言語を使用して、プログラム的にZalgo結合マークをテキストから削除する技術を学びます。
Practical Usage
詳細な説明
Zalgoテキストの削除
Zalgoの除去とは、テキストからすべての結合ダイアクリティカルマークを削除し、クリーンで読みやすい形式に復元することです。
JavaScriptの正規表現アプローチ
function stripZalgo(text) {
return text.replace(/[\u0300-\u036f]/g, '');
}
// より広範なカバレッジ(拡張結合マーク):
function stripZalgoFull(text) {
return text.replace(
/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/g,
''
);
}
Python
import unicodedata
def strip_zalgo(text):
return ''.join(
c for c in text
if unicodedata.category(c) != 'Mn'
)
正当なダイアクリティクスの保持
すべての結合マークを除去すると、正当なアクセント(é, ñ, ü)も削除されます。正当なダイアクリティクスを保持しながら過剰分を除去するには:
function stripExcessCombining(text, maxPerChar = 2) {
let result = '';
let combiningCount = 0;
for (const char of text) {
if (/\p{Mn}/u.test(char)) {
combiningCount++;
if (combiningCount <= maxPerChar) result += char;
} else {
combiningCount = 0;
result += char;
}
}
return result;
}
ユースケース
Zalgoの除去は、チャットアプリケーション、フォーラムソフトウェア、SNSプラットフォーム、悪意のあるまたは破壊的なUnicode結合マークを含む可能性のあるユーザー生成コンテンツを処理するテキスト処理パイプラインに不可欠です。