コンテンツへスキップ
uencoder

テキストから @メンションを抽出する

メンションは @ にユーザー名が続く形式です。メンションの抽出、ユーザー名の検証、プロフィールへのリンク方法を学びましょう。

  1. 1

    メンションとは、@ に続くユーザー名 (英字、数字、アンダースコア、ハイフン) のことです。正規表現 @[\w]+ でメンションを見つけられます。ドットを許可するプラットフォームもあります (メールアドレス風)。@ は文字列先頭にあるか、前に空白がなければなりません (そうでなければメールアドレスの一部です)。抽出したユーザー名は、ユーザーデータベースと照合して検証してください。

  2. 2
    正規表現テスター →

    @\w[\w.]*\w または (より単純な) @\w+ ですべてのメンションを検索します。「Thanks @alice and @bob_smith for the help! CC: @team.frontend」のようなテキストでテストしてください。ツールはすべてのマッチを表示します。前が空白か文字列先頭かを確認して、メンションとメールアドレスを区別します。

  3. 3
    正規表現置換ツール →

    メンションをプロフィールにリンクします: @username を <a href="/users/username">@username</a> に置き換えます。コールバック付き置換でユーザーを引き、@([\w]+) を、ユーザーが存在すればそのプロフィールへのリンクに、存在しなければテキストのままに置き換えます。

よくある質問

メンションとメールアドレスはどう区別しますか?
文脈を確認します。@ の前が単語構成文字 (空白なし) なら、それはおそらくメールアドレスです ([email protected])。前に空白または文字列先頭があればメンション (@user) です。後読み (?<=\s|^)@\w+ または (?:^|\s)@(\w+) を使えば、メンションだけにマッチします。
ユーザー名に使える文字は何ですか?
一般的には英字、数字、アンダースコア ([a-zA-Z0-9_]) です。ハイフンやドットを許可するプラットフォームもあります (ただし連続ドットや末尾ドットは不可)。自分のプラットフォームのユーザー名規則を確認してください。抽出したメンションはユーザーデータベースと照合して検証します。@word の形がすべて実在ユーザーであるとは限りません。

このタスクを解決するワークフロー

関連ツール