Как Вы распознаете одно из двух слов в регулярном выражении?

Я всегда использую nvarchar, поскольку он позволяет то, что я создаю для противостояния в значительной степени любым данным, которые я бросаю в него. Моя система CMS делает китайский язык случайно, потому что я использовал nvarchar. В эти дни любые новые приложения не должны действительно касаться суммы требуемого пространства.

37
задан Adrian Sarli 27 July 2009 в 21:16
поделиться

4 ответа

Попробуйте:

/(@|at)/

Это означает либо @ , либо в , но не оба сразу. Он также записывается в группу, поэтому вы можете позже получить доступ к точному совпадению с помощью обратной ссылки, если захотите.

61
ответ дан 27 November 2019 в 04:15
поделиться
/(?:@|at)/

Ответ Мейерса выполнит захват пары; мой не будет. Что вы должны использовать, зависит от того, хотите ли вы захват парена.

35
ответ дан 27 November 2019 в 04:15
поделиться

пробовали ли вы

@|at

, который работает (в версии регулярных выражений .NET) для следующего текста

johnsmith@gmail.com johnsmithatgmail.com

2
ответ дан 27 November 2019 в 04:15
поделиться

если это только 2 вещи, которые вы хотите захватить, не нужно регулярное выражение

if ( strpos($string,"@")!==FALSE || strpos($string,"at") !==FALSE ) {
  # do your thing
}
4
ответ дан 27 November 2019 в 04:15
поделиться
Другие вопросы по тегам:

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