メッシー文字列。最後に文字「@」除外するための正規表現

ジョン・ドウ:

私は、任意の特定のパターンに従っていません文字列のかなりの乱雑な配列を持っています。

基本的には、(パターンの任意の種類を、次ずに1つの文字列内のすべての情報を)台無しにされているユーザーのプロパティです。

私は2つの特定のプロパティ(電子メールと数)に興味を持っています。私は、電子メールを取得するために回避する方法を見つけて、次の正規表現することを考えました:

^9[0-9]{9}

ユーザーの携帯電話のために働くだろう。ただし、一部のユーザーは電話番号+に等しい電子メールを持っている「@」。何かをします。それが問題のようです。

だから、私は以下のものを除外し、私だけの数を与える正規表現を必要としています。

9876548877@

私はもう試した

^9[0-9]{9}((?!@).{0})*$"

そして、ここで完全一致が得られます。

9876548877

しかし、それは文字列がこれとは別に何も含まれていない場合にのみ、とてもうまく動作します。

私はこのような文字列に正確に電話番号を取得している達成しようとしています:

/* mess mess mess*/ John Doe Jr email: [email protected], phone number: 9876548877, /* more mess */

どうすればいいのですか?前もって感謝します。

UPD:

あなたの答え拝啓ありがとうございますが、どのようなタスクは少し異なっています

例えば、私はから正規表現を取り、ここで、その後、私はそれをテストし、ここで私は結果を得る私が欲しいの私はそれが私が探しているまさにだことを確認するが、電話番号とし、「@」なしで、同じ動作を実現しようとしています。

質問が適切に記述されていません。私の悪いです。

第四鳥:

あなたは何を左側には空白以外の文字ではなく、ない@の右側に主張する前後参照を使用することができます。

(?<!\S)9[0-9]{9}(?!\@)

正規表現のデモ

例えばそこにすることができた場合は:、直接あなたは開始時に後読みを省略して、単語の境界を使用することができます番号の前に\b

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=230111&siteId=1