计算包括标点符号在内的单词数
Counting no of words including punctuation
我正在尝试计算字符串中的单词数,包括标点符号 (,/;/./!/?)。
到目前为止只能计算单词的数量,但标点符号没有计算在内。尝试使用替换在每个标点符号前给出一个 space,但它仍然没有被计算在内。有人可以帮我吗?
我的代码:
import re
input_text = input("Enter the data: ")
final_text = input_text.replace(',',' ,').replace(';',' ;').replace('.',' .').replace('?',' ?').replace('!',' !')
count = len(re.findall(r'\w+', final_text))
print(count)
例如对于此输入
嗨。你好吗?我很好!你呢?再见!
应该是 16,包括所有标点符号。但我只有 11.
无需任何导入即可解决您的问题的简单方法:
my_string = "hi. how are you? I am good! what about you? bye!"
space_words = my_string.strip().split(" ")
count = len(space_words)
for word in space_words:
for character in word:
if not character.isalpha():
count += 1
print count
输出:
16
使用以下方法:
s = "hi. how are you? I am good! what about you? bye!"
result = len(re.findall(r'[^\w\s]|\w+', s))
print(result) # 16
\w+
- 将匹配字母数字序列(包括下划线 _
)
[^\w\s]
- 将匹配除字母数字和空格之外的所有字符
我正在尝试计算字符串中的单词数,包括标点符号 (,/;/./!/?)。
到目前为止只能计算单词的数量,但标点符号没有计算在内。尝试使用替换在每个标点符号前给出一个 space,但它仍然没有被计算在内。有人可以帮我吗?
我的代码:
import re
input_text = input("Enter the data: ")
final_text = input_text.replace(',',' ,').replace(';',' ;').replace('.',' .').replace('?',' ?').replace('!',' !')
count = len(re.findall(r'\w+', final_text))
print(count)
例如对于此输入
嗨。你好吗?我很好!你呢?再见!
应该是 16,包括所有标点符号。但我只有 11.
无需任何导入即可解决您的问题的简单方法:
my_string = "hi. how are you? I am good! what about you? bye!"
space_words = my_string.strip().split(" ")
count = len(space_words)
for word in space_words:
for character in word:
if not character.isalpha():
count += 1
print count
输出:
16
使用以下方法:
s = "hi. how are you? I am good! what about you? bye!"
result = len(re.findall(r'[^\w\s]|\w+', s))
print(result) # 16
\w+
- 将匹配字母数字序列(包括下划线 _
)
[^\w\s]
- 将匹配除字母数字和空格之外的所有字符