質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

1回答

6216閲覧

Google フォームで特定のドメインを含むEmailを正規表現で入力不可にしたい

srecna

総合スコア7

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

1クリップ

投稿2020/02/17 00:43

編集2020/02/17 08:24

数カ月前に作成した際には否定的先読みでdocomoやicloudなどのドメインをエラー判定できたのですが、現在作成しようとするとエラーがでて使用できなくなっていました。
公式の例の中に(\W|^)[\w.\-]{0,25}@(yahoo|hotmail|gmail).com(\W|$)として特定のドメインのみを「受け付ける」設定はありますが、そうではなくdocomo、ezweb、vodafone、softbank、icloudなどの携帯メールのドメインを「受け付けなく」したいです。
もし可能であればご教授いただければ幸いです。

追記:
「メールアドレスか否かを判定し、かつ特定のドメインを省く」という正規表現を、Google フォームで実現したいです。
前回は/^[a-zA-Z0-9]+[A-Za-z0-9._%-]+@(?!docomo|ezweb|vodafone|softbank)[A-Za-z0-9._%]+.[A-Za-z]{1,5}$/
のような正規表現を使っていましたが、今回使おうとしたら「有効な正規表現を入力してください」とエラーがでるようになりました。
「?!」を削るとエラーがでないので使えないようです。調べたところ、Googleの採用しているRE2構文では否定的先読みをサポートしていないようです。
もし他の方法があればご教授いただければ助かります。どうぞよろしくお願いいたします。

■参考にしたサイト
https://support.google.com/a/answer/1371417?hl=ja
https://support.google.com/a/answer/1346938?hl=ja
https://github.com/google/re2/wiki/Syntax

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

公式の正規表現例についてパターンマッチ結果「真」をエラー、「偽」を正常とすれば良いのではないですか?

Googleフォームではできないのですね、すみません。
?!を指定しても期待通りの結果にならないということなのですね。
どのようなエラーが表示されるのでしょうか?

投稿2020/02/17 02:34

編集2020/02/17 02:59
DreamTheater

総合スコア1095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

srecna

2020/02/17 02:56

早速のご回答どうもありがとうございます。確かにその方法だと特定のドメインを省くことができました。ただ、質問に書くのを忘れておりまして恐縮ですが、その方法だとメールアドレスの入力がされているかどうかという判定ができなくなってしまいます。 理想をいえば、「メールアドレスかどうかの判定」と「特定ドメインを省く」(指定した文字が含まれていないかどうか)という判定を一度を行いたく存じます。
DreamTheater

2020/02/17 03:04

再三の訂正ですみませんでした。 メールアドレスか否かの正規表現については有名な大作がありますが、現実的な正規表現として以下があります。 /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$/ perl5の表記なので、Googleフォームで使用可能かどうかわかりません。
srecna

2020/02/17 03:11

再度のコメントありがとうございます。質問に追記させていただきました。
DreamTheater

2020/02/17 04:20

追記された正規表現perlでは正常動作しますね。。。 Googleフォームの正規表現規則が変わったのかもしれませんね。 先ずメールアドレスか否かを判定した後、最初の回答通りパターンマッチ「偽」を正常とするくらいしか思いつきません。(すみません)
srecna

2020/02/17 08:17

コメントありがとうございます。Googleフォームでは判定が一度しか行えないため、「メールアドレスかどうかの判定」と「特定ドメインを省く」のどちらかしかできない、ということになりそうですね。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問