如何统计JSON数组中单词"hello"的出现次数?
统计JSON数组中单词"hello"的出现次数
没问题!我来帮你搞定这个统计需求~ 下面我会用两种常用语言(JavaScript和Python)来演示怎么实现,你可以根据自己的场景选择:
核心思路
我们需要遍历JSON数组里的每一条消息,提取msg字段的内容,然后统计其中"hello"的出现次数。这里要注意两种常见需求:
- 匹配独立单词的"hello"(比如"hello"、"hello!"算,但"helloworld"不算)
- 匹配任意子串的"hello"(只要字符串里包含就计数,比如"helloworld"也会算)
JavaScript实现
1. 匹配独立单词(推荐,符合"单词"的定义)
// 假设你的JSON数据已经解析成JS对象 const chatData = { "messages": [ { "msg": "?", "name": "johndoe" }, { "msg": "hello", "name": "johndoe" }, { "msg": "twitt", "name": "johndoe" }, { "msg": "hello everyone!", "name": "johndoe" }, { "msg": "hello! how are you", "name": "johndoe" } ] }; function countHello(chatData) { let total = 0; // 遍历每条消息 chatData.messages.forEach(item => { // 用正则匹配独立的hello单词,\b是单词边界,gi表示全局+不区分大小写 const matches = item.msg.match(/\bhello\b/gi); // 如果有匹配结果,就把数量加到总数里 if (matches) total += matches.length; }); return total; } // 调用函数获取结果 const helloCount = countHello(chatData); console.log(helloCount); // 输出:3
2. 匹配任意子串
如果不需要严格匹配单词,只要包含"hello"就计数,把正则改成/hello/gi即可:
const matches = item.msg.match(/hello/gi);
Python实现
1. 匹配独立单词
import re # 假设你的JSON数据已经解析成Python字典 chat_data = { "messages": [ { "msg": "?", "name": "johndoe" }, { "msg": "hello", "name": "johndoe" }, { "msg": "twitt", "name": "johndoe" }, { "msg": "hello everyone!", "name": "johndoe" }, { "msg": "hello! how are you", "name": "johndoe" } ] } def count_hello(chat_data): total = 0 for item in chat_data["messages"]: # 用正则查找所有独立的hello单词,re.IGNORECASE表示不区分大小写 matches = re.findall(r'\bhello\b', item["msg"], re.IGNORECASE) total += len(matches) return total # 调用函数 hello_count = count_hello(chat_data) print(hello_count) # 输出:3
2. 匹配任意子串
同样,把正则改成r'hello'即可:
matches = re.findall(r'hello', item["msg"], re.IGNORECASE)
如果你的JSON数据还没解析,记得先解析成对应语言的对象/字典哦(比如JS用JSON.parse(),Python用json.loads())。
内容的提问来源于stack exchange,提问作者RTVBasic
相关产品推荐
相关产品推荐

