0

ユーザー名と電子メール アドレスのリストを含むファイルがあり、2 つの式が必要です。1 つは電子メール アドレス (常に .com、.net、または .org で終わる) を取得するためのもので、もう 1 つはユーザー名を取得するためのものです。

ユーザー名を 1 つの式として、ドメイン部分をもう 1 つの式としてのみ必要です@。記号は必要ありません。

@stackoverflow.com
@google.com
@example.com

私は試した

^@.*?..*?$

ユーザー

@Perl
@Python
@PHP

私は試した

^@.*?$

どんな提案でも良いです。

4

3 に答える 3

0

ドメインに対して次のようなことができます。

^@[^.]+\.[^.]+$

これは、文字列の先頭に が続き、その後に 以外@の 1 つ以上の文字が続き、その後に が続き、その後に以外の任意の文字が 1 以上続き、文字列の末尾が続きます。.. .

ただし、これは 2 つ以上の部分 (例: @meta.stackoverflow.com) を持つドメインをキャプチャしません。それが重要な場合は、代わりにこれを試すことができます。

^@[^.]+(\.[^.]+)+$

これは、文字列の先頭に一致し、その後に が続き、その後に以外@の 1 つまたは複数の文字が続き、その後に で構成されるグループが続き、その後に以外 の 1 つまたは複数の文字が続き、このグループが繰り返される場合があります。 1 回以上繰り返され、その後に文字列の末尾が続きます。.. .

そしてこれはユーザーのために:

^@[^.]+$

これは、文字列の先頭に一致し、その後に が続き、その後に以外@の 1 つ以上の文字が続き、その後に文字列の末尾が続きます。 .

于 2013-10-12T04:10:31.533 に答える
0

\.最初の式では、最後の前にドットをエスケープした場合に一致.*?します.2番目の式は、行全体に明確に一致しています. 一致するが除外するには、@あなたができる..

ドメインには次を使用します。

^@(\S+\.[^\s]+)$

正規表現:

^             the beginning of the string
@             '@'
 (            group and capture to \1:
\S+           non-whitespace (all but \n, \r, \t, \f, and " ") (1 or more times)      
\.            '.'
[^\s]+        any character except: whitespace (1 or more times)
)             end of \1
$             before an optional \n, and the end of the string

ライブデモを見る

ユーザーが使用する場合:

^@([^\s.]+)$

正規表現:

^             the beginning of the string
@             '@'
 (            group and capture to \1:
[^\s.]+       any character except: whitespace or '.' (1 or more times)
)             end of \1
$             before an optional \n, and the end of the string

ライブデモを見る

于 2013-10-12T04:12:35.870 に答える