Regex match или null [duplicate]

Если вы не возражаете сохранить свои локальные изменения, но все же хотите обновить свой репозиторий в соответствии с начальником / HEAD, вы можете просто скопировать ваши локальные изменения, а затем потянуть:

git stash
git pull
47
задан Teun Zengerink 27 July 2012 в 10:55
поделиться

4 ответа

Чтобы сопоставить pattern или пустую строку, используйте

^$|pattern

Объяснение

  • ^ и $ - начало и конец строки якоря соответственно.
  • | используется для обозначения альтернатив, например this|that.

Ссылки


В \b

\b в большинстве случаев это якорь «граница слова». Это совпадение с нулевой шириной, то есть пустая строка, но она соответствует только этим строкам в очень специфических местах , а именно на границах слова.

То есть \b:

  • Между последовательными \w и \W (любой порядок): то есть между символом слова и символом не-слова
  • Между ^ ] и \w, т.е. в начале строки, если она начинается с \w
  • Между \w и $, т.е. в конце строки, если она заканчивается на \w

Ссылки


Вкл. используя регулярное выражение для соответствия адресам электронной почты

Это не тривиально в зависимости от спецификации.

Связанные вопросы

126
ответ дан Community 19 August 2018 в 15:57
поделиться

Альтернативой было бы разместить ваше регулярное выражение в невостребованных круглых скобках. Затем сделайте это выражение необязательным, используя квалификатор ?, который будет искать 0 (т. Е. Пустую строку) или 1 экземпляр незахваченной группы.

Например:

/(?: some regexp )?/

В вашем случае регулярное выражение будет выглядеть примерно так:

/^(?:[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+)?$/

Нет | "или" необходим оператор!

Здесь Документация Mozilla для синтаксиса регулярного выражения JavaScript.

7
ответ дан Jgonzalez731 19 August 2018 в 15:57
поделиться

Я не уверен, почему вы хотите проверить дополнительный адрес электронной почты, но я бы посоветовал вам использовать

^$|^[^@\s]+@[^@\s]+$

, что означает

^$        empty string
|         or
^         beginning of string
[^@\s]+   any character but @ or whitespace
@         
[^@\s]+
$         end of string

Вы выиграли 't прекратить поддельные электронные письма в любом случае, и таким образом вы не прекратите действительные адреса.

2
ответ дан MrWhite 19 August 2018 в 15:57
поделиться
  • 1
    Если адрес не вводится в поле, в базу данных вводится значение NULL, поэтому это можно решить, когда дело доходит до рассылки информационных бюллетеней и т. Д. Я ценю, что это не остановит поддельные адреса, и я не думаю, что возможно вообще с Regex, но это, по крайней мере, минимизирует человеческую ошибку – Curt 26 July 2010 в 10:46
  • 2
    У меня также есть и запросы клиентов. На самом деле, это просто заставить клиентов делать что-то глупое, как вводить свой номер телефона в поле электронной почты. – Kelly Gendron 8 March 2012 в 19:22

\ b соответствует границе слова. Я думаю, вы можете использовать ^ $ для пустой строки.

0
ответ дан pritaeas 19 August 2018 в 15:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: