正则表达式:匹配单词或短语

时间:2014-09-25 06:09:32

标签: javascript regex

目前,我在我的javascript中使用以下RegEx来匹配和计算字符串中的单词。 这与ReEx:

完全相同

正则表达式:

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

关键字:美丽

字符串:花园里美丽的树。在花园里是美丽的树。

输出:

  • :4
  • 美丽:2
  • tree:2
  • 花园
  • in:2

现在,我想要匹配短语(确切地说)。例如,

关键字或短语:漂亮的树

字符串:花园里美丽的树。在花园里是美丽的树。漂亮的模特树已售罄。

输出:

  • :4
  • 美丽的树:2
  • tree:1
  • 美丽:1
  • 花园
  • in:2

我对RegExp并不是很坚定。你有什么提示吗?谢谢

1 个答案:

答案 0 :(得分:1)

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

即。完全匹配和匹配regexp的通用词之间的逻辑OR?

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 }