目前,我在我的javascript中使用以下RegEx来匹配和计算字符串中的单词。 这与ReEx:
完全相同正则表达式:
var pickRegExp = /[^\W\d]+[\u00C0-\u017Fa-zA-Z'](\w|[-'](?=\w))*/gi;
关键字:美丽
字符串:花园里美丽的树。在花园里是美丽的树。
输出:
现在,我也想要匹配短语(确切地说)。例如,
关键字或短语:漂亮的树
字符串:花园里美丽的树。在花园里是美丽的树。漂亮的模特树已售罄。
输出:
我对RegExp并不是很坚定。你有什么提示吗?谢谢
答案 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 }