2014-09-25 1525 views
0

當前,我在我的javascript中使用以下RegEx來匹配和計算字符串中的單詞。 與此ReEx工作PERFEKT:正則表達式:匹配單詞或短語

正則表達式:

var pickRegExp = /[^\W\d]+[\u00C0-\u017Fa-zA-Z'](\w|[-'](?=\w))*/gi; 

關鍵字:美麗

字符串:花園裏的美麗的樹。在花園裏是美麗的樹。

輸出:

  • 的:4
  • 美麗:2
  • 樹:2
  • 花園
  • :14:

現在,我想要匹配的短語(完全)。對於例如

關鍵字或短語:美麗的樹

字符串:美麗的樹在花園裏。在花園裏是美麗的樹。美麗的模型樹已經售罄。

輸出:

  • 的:4
  • 美麗的樹:2
  • 樹:1
  • 美麗:1個
  • 花園
  • :14:

我對RegExp並不是很堅定。你有任何提示給我嗎?謝謝

回答

1

什麼

/\b(Beautiful tree|..*?)\b/gi 

即邏輯或精確匹配和通用字匹配正則表達式之間?

s = ("The beautiful tree in the garden. In the garden is " + 
    "the beautiful tree. The model tree beautiful is sold out."); 
result = {} 
s.match(/\b(Beautiful tree|..*?)\b/gi).forEach(function(x) { 
    result[x] = (result[x]|0) + 1; 
}); 

{ " ": 15, 
    ". ": 2, 
    "In": 1, 
    "The": 2, 
    "beautiful": 1, 
    "beautiful tree": 2, 
    "garden": 2, 
    "in": 1, 
    "is": 2, 
    "model": 1, 
    "out": 1, 
    "sold": 1, 
    "the": 3, 
    "tree": 1 } 
+0

應了那句完全匹配。單詞不同的順序或單獨的詞組也應該匹配 – mm1975 2014-09-25 06:43:30

+0

我必須再次回來:我怎樣才能避免它匹配空白,。 ,等等,還有用德語變音詞ü,ä,ö分開的單詞。在原始的正則表達式中,空格,分數和逗號被忽略,並且包含了帶有德語變音符號的單詞。謝謝你的幫助 – mm1975 2014-09-25 08:32:30