2012-04-06 2 views
3

文字列の "@"で始まるすべての単語に一致するようにこの正規表現を作成しましたが、@トークンの前にも何かがある可能性があります。それはうまくいくが、それはまた電子メールアドレスをキャッチし、私はそれを修正したいと思います。電子メールアドレスを無視して@で始まるすべての単語を検索する

(?<[email protected])\w+\b 

例文字列は次のようになります。

@bobこんにちは、お元気ですか? @mark、@emma、@chiefは私と一緒です。 [email protected]で をメールしてください!

お手伝いできますか?

\[email protected]\w+ 

non-word boundary\B)開始時刻:あなたは次の式を使用することができます@

+0

文字列に「。」が含まれているかどうかを確認できます。 "@"の後に必ずしも電子メールアドレスを扱っているわけではありません。私はistanceのために "a @ b"を考えています。かなり良い質問だと思います。 – raz3r

答えて

3

の前のスペースのための

0

テスト。 negative lookaheadを次のように書き換えることもできます。

(?!\b)@\w+ 
+0

ありがとう@Sprachprofiしかし、私は私の質問で言ったようにそこにスペースがあるかもしれません –

0

私の提案はこれです。

[\s]?\[email protected]\w+

私はRADソフトウェアから正規表現デザイナーでそれをテストしたのだが、@で始まるすべての単語と一致します。それの前にスペースがあるかどうか。

希望する;)

+0

それはまた単語の前にスペースに一致します: "@ボブ"、 "@マーク"、 "@emma"と "@終了" (余分なスペースで)文字列の例と一致します。 – Alex

+0

彼は何を尋ねたのですか? :p – finxie

関連する問題