Я хочу сопоставить либо @, либо 'at' в регулярном выражении. Может кто-нибудь помочь? Я попытался использовать? оператор, дающий мне /@? (at)?/но это не сработало
Как вы соответствуете одному из двух слов в регулярном выражении?
Ответ 1
Try:
/(@|at)/
Это означает либо @
, либо at
, но не оба. Он также записывается в группу, поэтому вы можете позже получить доступ к точному совпадению с помощью обратной ссылки, если хотите.
Ответ 2
/(?:@|at)/
Ответ mmyers будет выполнять захват паз; мой не будет. Что вы должны использовать, зависит от того, хотите ли вы захватить пар.
Ответ 3
если только 2 вещи, которые вы хотите захватить, нет необходимости в регулярном выражении
if ( strpos($string,"@")!==FALSE || strpos($string,"at") !==FALSE ) {
# do your thing
}
Ответ 4
Вы пробовали
@|at
который работает (в выражении регулярного выражения .NET) следующий текст
[email protected] johnsmithatgmail.com