1

@username を twitter と同じように一致させようとしています。私が現在使用している正規表現: "([@])(\S+)"は、これにはうまく機能します。

ただし、次のような制限があります。 test@test.com は test.com に一致します。

test@test.com を完全に除外したい

ただし、一部のユーザーはユーザー名 test@test.com を持っており、その電子メール ユーザー名の前に実際に @ がある場合はそれらを含めたいと考えています。

したがって、@test@test.com が一致する必要があります

要約: 一致する必要があります:

@ユーザー名

@テスト

@test@test.com

一致させたくない:

test@test.com

4

4 に答える 4

2

否定的な後読みを使用することをお勧めします。たとえば、次のようになります。

(?<!\S)@(\S+)

これには の前に可能なスペースは含まれない@fooため、問題なく置き換えることができます。

于 2013-03-14T04:51:14.423 に答える
1

答えとして@、テキストの途中でチェックしたくないのですが、前にスペースが必要なので、使用します(\s|^)+([@])(\S+)

于 2013-03-14T04:11:22.197 に答える
0

^@.* 上記の正規表現は、探しているものと一致します

于 2013-03-14T04:13:00.003 に答える
0

正規表現は次のようになります^@.*。^ は、行または文字列の先頭に固定されます。OverAPI Regexを必ずチェックしてください。チート シートは非常に優れています。

于 2013-03-14T04:10:26.067 に答える