2009-08-04 15 views
3

私は正規表現でTwitterの構文と一致するように探しています。正規表現マッチ、かなりシンプル:

"@______"は、@記号で始まり、単語の末尾にスペース、文字、数字が続くものはどれも一致できますか?そのシンプル

+0

将来的には、使用している方言、つまり.NET、Perl、ECMAScript/JavaScriptなどにRegExの質問をするときに役立ちます。微妙な違いがあります。 – richardtallent

答えて

6

移動します。

+0

有効な名前の特定のセットに対してのみ機能します。 I18Nの名前では機能しません。 Twitterはそれを扱う非常に広範なREGEXを提供しています。 –

+0

Alこの記事では、Twitterアカウントには無効な@@や@ h *のようなものをテストすると正規表現で有効な表現として –

+0

@JohnYearyが提供されているので、このソリューションは役に立ちません。 、あなたはそれのためのリンクを提供してくださいできますか? –

5

@\w+

(ツイーターに、私は返事に誰かの名前を一致させたいですか)?文字クラスの複数のインスタンス

注これらのことを表すために文字クラス
+を意味する単語文字
用W \桁の文字
用D \

+0

wに数字が含まれていますか? – DOK

+0

あなたのwの前に\が必要です。おそらく、+は使わない方がいいでしょう。 – Amber

+0

私はそこにスラッシュを入れましたが、*を@ –

0
@[\d\w]+ 

[]単語と数字の指定子は言語に依存します。言語仕様を確認してください。

/@(\w+)/

だけでなく、抽出一致する名前を取得するための

+4

\ wは実際に数字を含んでいるので、@ \ w +で十分です。 – Amber

+1

\ wは英数字です –

+0

"\ w"という別の答えが最適です。 – richardtallent

2

あなたがまたと一致させることができますので、Twitterのは、もはや、15文字を超えるユーザー名を許可することに注目すべきではない:

@\w{1,15} 

あり15文字以上のユーザー名とまだ明らかに少数の人々がありますが、上のテストと思われる false positiveを除外するには、15が良いでしょう。

ユーザー名、複数のアンダースコアなどの先頭や末尾にアンダースコアを使用できるかどうかに関する規則はなく、1文字の名前のアカウントとユーザー名が「_」のアカウントがあります。

0

Twitterで提供されているJavaバージョンのAPIは、github twitter-text-javaにあります。これがあなたが使うことができるものかどうかを調べることをお勧めします。

私はそれを使ってTwitterの名前を検証しました。これはとてもうまく動作します。