Ваш код просто скремблирован. Ответ довольно прост.
Just go to **Build** --> **Clean Project**.
Это должно сделать трюк.
Я использую Android Studio 3.0.1 .
Обновление:
Не имеет отношения к проблеме ... но имеет отношение к практике.
В общем, по возможности избегайте использования ключевых слов в качестве имен таблиц / столбцов.
Вы можете протестировать регулярное выражение в клиенте MySQL, не используя триггер:
mysql> select 'user@example.com' REGEXP '^[^@]+@[^@]+\.[^@]{2,} Это ожидаемо, но как насчет того, чтобы мы дали ему недействительный адрес электронной почты?
mysql> select 'user@example.' REGEXP '^[^@]+@[^@]+\.[^@]{2,} Что должно быть 0, но почему бы и нет?
Потому что \.
недостаточно для выхода из точки в регулярном выражении. Один \
теряется, когда SQL анализирует строку. Нам нужно, чтобы литерал \
находился в строке регулярного выражения, чтобы избежать точки. Поэтому мы должны использовать double \\
, чтобы один единственный литерал \
оставался в регулярном выражении после того, как MySQL его отсканировал один раз.
mysql> select 'user@example.' REGEXP '^[^@]+@[^@]+\\.[^@]{2,} П.С. Для чего это стоит, электронные письма являются более сложными, чем ваша простая проверка. Этот старый заархивированный блог имеет несколько попыток всесторонней проверки электронной почты: https://web.archive.org/web/20150910045413/http://squiloople.com/2009/12/20/email-address-validation [ 118]
Наиболее успешным из них стало регулярное выражение, использованное в PHP FILTER_VALIDATE_EMAIL .
as email_match;
+-------------+
| email_match |
+-------------+
| 0 |
+-------------+
П.С. Для чего это стоит, электронные письма являются более сложными, чем ваша простая проверка. Этот старый заархивированный блог имеет несколько попыток всесторонней проверки электронной почты: https://web.archive.org/web/20150910045413/http://squiloople.com/2009/12/20/email-address-validation [ 118]
Наиболее успешным из них стало регулярное выражение, использованное в PHP FILTER_VALIDATE_EMAIL .
as email_match;
+-------------+
| email_match |
+-------------+
| 1 |
+-------------+
Что должно быть 0, но почему бы и нет?
Потому что \.
недостаточно для выхода из точки в регулярном выражении. Один \
теряется, когда SQL анализирует строку. Нам нужно, чтобы литерал \
находился в строке регулярного выражения, чтобы избежать точки. Поэтому мы должны использовать double \\
, чтобы один единственный литерал \
оставался в регулярном выражении после того, как MySQL его отсканировал один раз.
mysql> select 'user@example.' REGEXP '^[^@]+@[^@]+\\.[^@]{2,} П.С. Для чего это стоит, электронные письма являются более сложными, чем ваша простая проверка. Этот старый заархивированный блог имеет несколько попыток всесторонней проверки электронной почты: https://web.archive.org/web/20150910045413/http://squiloople.com/2009/12/20/email-address-validation [ 118]
Наиболее успешным из них стало регулярное выражение, использованное в PHP FILTER_VALIDATE_EMAIL .
as email_match;
+-------------+
| email_match |
+-------------+
| 0 |
+-------------+
П.С. Для чего это стоит, электронные письма являются более сложными, чем ваша простая проверка. Этот старый заархивированный блог имеет несколько попыток всесторонней проверки электронной почты: https://web.archive.org/web/20150910045413/http://squiloople.com/2009/12/20/email-address-validation [ 118]
Наиболее успешным из них стало регулярное выражение, использованное в PHP FILTER_VALIDATE_EMAIL .
as email_match;
+-------------+
| email_match |
+-------------+
| 1 |
+-------------+
Это ожидаемо, но как насчет того, чтобы мы дали ему недействительный адрес электронной почты?
mysql> select 'user@example.' REGEXP '^[^@]+@[^@]+\.[^@]{2,} Что должно быть 0, но почему бы и нет?
Потому что \.
недостаточно для выхода из точки в регулярном выражении. Один \
теряется, когда SQL анализирует строку. Нам нужно, чтобы литерал \
находился в строке регулярного выражения, чтобы избежать точки. Поэтому мы должны использовать double \\
, чтобы один единственный литерал \
оставался в регулярном выражении после того, как MySQL его отсканировал один раз.
mysql> select 'user@example.' REGEXP '^[^@]+@[^@]+\\.[^@]{2,} П.С. Для чего это стоит, электронные письма являются более сложными, чем ваша простая проверка. Этот старый заархивированный блог имеет несколько попыток всесторонней проверки электронной почты: https://web.archive.org/web/20150910045413/http://squiloople.com/2009/12/20/email-address-validation [ 118]
Наиболее успешным из них стало регулярное выражение, использованное в PHP FILTER_VALIDATE_EMAIL .
as email_match;
+-------------+
| email_match |
+-------------+
| 0 |
+-------------+
П.С. Для чего это стоит, электронные письма являются более сложными, чем ваша простая проверка. Этот старый заархивированный блог имеет несколько попыток всесторонней проверки электронной почты: https://web.archive.org/web/20150910045413/http://squiloople.com/2009/12/20/email-address-validation [ 118]
Наиболее успешным из них стало регулярное выражение, использованное в PHP FILTER_VALIDATE_EMAIL .
as email_match;
+-------------+
| email_match |
+-------------+
| 1 |
+-------------+
Что должно быть 0, но почему бы и нет?
Потому что \.
недостаточно для выхода из точки в регулярном выражении. Один \
теряется, когда SQL анализирует строку. Нам нужно, чтобы литерал \
находился в строке регулярного выражения, чтобы избежать точки. Поэтому мы должны использовать double \\
, чтобы один единственный литерал \
оставался в регулярном выражении после того, как MySQL его отсканировал один раз.
mysql> select 'user@example.' REGEXP '^[^@]+@[^@]+\\.[^@]{2,} П.С. Для чего это стоит, электронные письма являются более сложными, чем ваша простая проверка. Этот старый заархивированный блог имеет несколько попыток всесторонней проверки электронной почты: https://web.archive.org/web/20150910045413/http://squiloople.com/2009/12/20/email-address-validation [ 118]
Наиболее успешным из них стало регулярное выражение, использованное в PHP FILTER_VALIDATE_EMAIL .
as email_match;
+-------------+
| email_match |
+-------------+
| 0 |
+-------------+
П.С. Для чего это стоит, электронные письма являются более сложными, чем ваша простая проверка. Этот старый заархивированный блог имеет несколько попыток всесторонней проверки электронной почты: https://web.archive.org/web/20150910045413/http://squiloople.com/2009/12/20/email-address-validation [ 118]
Наиболее успешным из них стало регулярное выражение, использованное в PHP FILTER_VALIDATE_EMAIL .