你如何匹配正则表达式中的两个单词之一?

Adr*_*rli 37 php regex

我想在正则表达式中匹配@或'at'.有人可以帮忙吗?我试过用?操作员,给我/ @?(at)?/但这不起作用

Mic*_*ers 61

尝试:

/(@|at)/
Run Code Online (Sandbox Code Playgroud)

这意味着@at两者兼而有之.它也会在一个组中捕获,因此如果您愿意,可以稍后通过反向引用访问完全匹配.


cha*_*aos 35

/(?:@|at)/
Run Code Online (Sandbox Code Playgroud)

mmyers的回答将表现出色; 我的不会.你应该使用哪种取决于你是否想要捕捉.

  • @Qwerty:`(?:)`分组没有捕获,而不是捕获的`()`. (4认同)