7

アンダースコア付きの文字列を除く文字列に一致する正規表現を作成しようとしています。

私はこれまでこれを持って/[A-Za-z0-9]+/いますが、アンダースコアを必要としないようにするために何を含めるべきかわかりません。

アップデート:

これをもっと明確にすべきだったのです。メールアドレスを一致させようとしていますが、_の後の部分にアンダースコアが含まれているメールアドレスは一致しません

これは私がこれまでに持っているものです。 /[A-Za-z_0-9]+@[A-Za-z0-9]+\.(com|ca|org|net)/ 現時点での回答は機能しません

4

2 に答える 2

13

/^[^_]+$/アンダースコア以外の文字を含む1文字以上の文字列に一致します。

于 2013-03-04T16:12:41.260 に答える
8

アンダースコアを含む文字列を除いて、文字列を一致させるためにあなたが求めているものを理解している場合、これには正規表現の先読みが必要です。

その理由は、正規表現は通常、一度に1文字ずつ動作するためです。したがって、文字と一致する必要があるかどうかを知りたいが、後でアンダースコアがない場合にのみ、先読みを使用する必要があります。

^((?!_)[A-Za-z0-9])+$

?!負の先読み演算子です

編集:

したがって、@記号の前の部分には最大で1つのアンダースコアがあり、後の部分にはアンダースコアがないようにしますか?

^[A-Za-z0-9]+_?[A-Za-z0-9]+@[A-Za-z0-9]+\.(com|ca|org|net)$

于 2013-03-04T16:45:49.553 に答える