logo

【Unity】文字列に禁止ワードが含まれているかチェックをする方法

投稿日2023-02-17

更新日2024-05-17

Picture of the logo
目次(タップして移動)

正規表現を使って特定のワードを検出する

検出したい下品な言葉のリストを作成します。このリストは、手動で作成するか、オンラインからダウンロードするなどします。

下品な単語のリストに一致する正規表現パターンを構築します。これを行うには、縦棒「|」を使用できます。選択肢のリストを指定します。たとえば、正規表現パターン "(bad|ugly|fuck)" は、"bad"、"ugly"、または "fuck" のいずれかの単語に一致します。

コードで正規表現パターンを使用して、文字列に下品な単語が含まれているかどうかを検出します。これを行うには、Unity の Regex クラスを使用できます。次に例を示します。

using UnityEngine;
using System.Text.RegularExpressions;

public class TextCheck : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // チェックする文字列
        string text = "テストテストテスト死ねテストテスト";
        // 禁止ワードのリスト
        string pattern = "(死ね|タヒね|ちんこ)";

        if (Regex.IsMatch(text, pattern))
        {
            Debug.Log("NGワードです!");
        }
        else
        {
            Debug.Log("OKです");
        }
    }
}

この例では、Regex クラスの IsMatch メソッドを使用して、文字列 "text" に正規表現パターンで指定された単語が含まれているかどうかを判断します。一致が見つかった場合、「下品な単語が検出されました!」というメッセージが表示されます。コンソールに出力されます。

実行結果

上記のコードをそのまま実行すると

ng

textから「死ね」を削除して string text = "テストテストテストテストテスト"; とすると、 ng と表示されます。

これは基本的な例であり、下品な言葉のすべてのインスタンスを捉えているわけではないことに注意してください。実運用する場合は検出精度を向上させるために、正規表現パターンを改良するか、追加の手法を使用する必要がある場合があります。






このサイトをシェアする