[英]How do you match one of two words in a regular expression?
我想在正则表达式中匹配 @ 或 'at'。 有人可以帮忙吗? 我尝试使用 ? 运营商,给我 /@?(at)?/ 但这没有用
尝试:
/(@|at)/
这意味着@
或at
但不是两者。 它还在一个组中捕获,因此您可以稍后通过反向引用访问完全匹配项(如果需要)。
/(?:@|at)/
mmyers 的回答将执行括号捕获; 我的不会。 您应该使用哪个取决于您是否想要括号捕获。
如果这只是您想要捕获的两件事,则不需要正则表达式
if ( strpos($string,"@")!==FALSE || strpos($string,"at") !==FALSE ) {
# do your thing
}
你有没有尝试过
@|at
适用于(在 .NET regex 风格中)以下文本
johnsmith@gmail.com johnsmithatgmail.com
关于什么:
^(\w*(@|at))
为了:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.