2009-07-27 70 views
29

我想在正則表達式中匹配@或'at'。有人可以幫忙嗎?我試過使用?運營商,給我/ @(AT)/但沒有工作如何匹配正則表達式中的兩個單詞之一?

+6

啊,來吧!交替是基本的。 – Gumbo 2009-07-27 14:44:17

+0

[正則表達式包含一個字或另一個](http://stackoverflow.com/q/17166618/995714) – 2016-03-11 09:29:02

回答

54

嘗試:??

/(@|at)/ 

這意味着無論是@at但不能同時。它也被捕獲在一個組中,所以如果你願意,你可以通過反向引用來訪問完全匹配。

+0

會處理電子郵件地址類似於[email protected]或latitudeataddress.com的情況嗎? – 2009-07-27 14:50:28

+0

爲什麼不呢? 「處理」是什麼意思? – 2009-07-27 14:56:59

+0

它會產生假陽性匹配是我問我猜。 – 2009-07-27 15:17:36

32
/(?:@|at)/ 

mmyers的答案將執行paren捕獲;我的不會。你應該使用哪個取決於你是否想要paren捕獲。

2

你試過

@|at 

,對於工作(在.NET正則表達式的味道)以下文本

[email protected] johnsmithatgmail.com

3

,如果這是唯一的兩件事情你想捕捉,不需要正則表達式

if (strpos($string,"@")!==FALSE || strpos($string,"at") !==FALSE) { 
    # do your thing 
} 
相關問題