2010-08-25 25 views
2

我想獲得一個正則表達式將匹配任何下列字符串:定期對工作人員表達

Sales Director: 
Managing Director: 
Sales Manager: 
General Manager - Power: 
Finance Director: 
Procurement Manager: 
Director: 
Director: 
Managing Director: 
Finance Director: 
Sales Director: 
Managing Director: 
Sales Manager: 
Finance Director: 
Procurement Manager: 

但不是:

print directories and guides 
defence Industry Directory 

到目前爲止我有:

/(manager|director)/i 

但是,這顯然會匹配目錄,目錄等

我知道$符號表示單詞的結尾,但我無法得到正確的語法。

我應該使用像\b這樣的詞邊界嗎?

我也不想在句子中與經理或主任拉回整句。我想我最多需要2個單詞,其中經理或目錄是第一個或第二個單詞。這可能嗎?

任何人都可以指向正確的方向嗎?

+0

牛逼<Ø的編程語言,你有興趣嗎? – kiamlaluno 2010-08-25 19:57:40

+0

大約有一千個正則表達式系統在野外,其中一些不匹配的「目錄」,因爲他們不想要一個字符串匹配的默認假設。在這個問題的背景下,你應該更精確。 – 2010-08-25 19:58:41

+1

*我想我最多需要2個字*「總經理 - 權力」是三個字。 – 2010-08-25 20:01:44

回答

2

我應該使用像\ b這樣的詞邊界嗎?

是的,你所需要的單詞邊界:

/\b(manager|director)\b/i 

我想我要一個最大的2個字,其中經理或總監是第一或第二個字。這可能嗎?

是的,你可以用一個正則表達式(rubular)做到這一點:

/^(?:\w+ +)?(manager|director)\b/i 

這種搜索可以:

  • 在開頭的單詞經理或主管該行或
  • 一個字,一個或多個空格,然後字經理或導演
  • 正則表達式
+0

這真的很酷,你能解釋一下?:語法嗎? – dagda1 2010-08-25 20:15:05

+0

@dagda:它使組無法捕獲。您可以移除':'並查看它是如何影響結果的(參見匹配結果下面的「匹配捕獲」部分)。 – 2010-08-25 20:16:16

0

不同「口味」有不同的能力,所以你應該標記與您所使用的技術,你的問題。

如果您正則表達式引擎支持的負面前瞻(「零寬度斷言」),你可以使用 director(?![yi])排除之後是yidirector實例。

真的,一個單詞邊界可能就好了。