python - 使用 RegEx 拆分字符串
问题描述
一天中的好时光,
目前我有点陷入挑战。我必须在一个短语中计算字数,我必须用空格或存在的任何特殊情况来分割它。
import re
def word_count(string):
counts = dict()
regex = re.split(r" +|[\s+,._:+!&@$%^]",string)
for word in regex:
word = str(word) if word.isdigit() else word
if word not in counts:
counts[word] = 1
else:
counts[word] += 1
return counts
但是我被困在正则表达式部分。拆分时,也考虑了空白
我开始使用
for word in string.split():
但它没有通过以下短语的测试:
“汽车:地毯作为java:javascript!!&@$%^& ”
“嘿,我的空格键坏了。 ”
' досвидания!'
因此,如果我理解的话,RegEx 是必要的。
非常感谢您!
解决方案
感谢 Olvin Roght 的建议。您的功能可以优雅地简化为此。
import re
from collections import Counter
def word_count(text):
count=Counter(re.split(r"[\W_]+",text))
del count['']
return count
请参阅 Ryszard Czech 对等值的一班轮的回答。
推荐阅读
- vba - 第二组 VB 脚本比第一组语句先运行
- php - 获取正确的值
- raspberry-pi - 如何在关闭或重新启动 Raspberry Pi(运行 Raspbian)之前运行 Bash 脚本?
- javascript - 答案应该对任何给定的输入有效
- angular - How to get Simple-Peer type intellisense in Angular 6
- elasticsearch - elasticsearch:集群协调节点不暴露elasticsearch服务
- python - 部署在 tf-serving 中的 Keras 模型提供 NAN 输出
- system-verilog - systemverilog 中的atobin() 和atohex()
- python - 从获取请求的响应中解析和获取列表
- c# - 在 Xamarin 表单中添加长按手势识别器