计算python上以大写字母开头的单词



**我是这里的新手。我正在开发一个程序,该程序使用python计算csv文件中每行以大写字母开头的单词。我用了正则表达式,但我认为它不起作用。这是我制作的示例代码,但不幸的是,它没有给出我想要的输出。希望你能帮助我

**

import re
line_details = []
result = []
count = 0
total_lines = 0
class CapitalW(): #F8 Word that starts with capital letter count   
fh = open(r'20items.csv', "r", encoding = "ISO-8859-1").read()
#next(fh)
for line in fh.split("n"):
total_lines += 1
for line in re.findall('[A-Z]+[a-z]+$', fh): 
count+=1
line_details.append("Line %d has %d Words that start with capital letter" % 
(total_lines, count))
for line in line_details:
result7 = line
print (result7)

**-结果应该如下:

第1行有2个以大写字母开头的单词

第2行有5个以大写字母开头的单词

第3行有1个以大写字母开头的单词

第4行有10个以大写字母**开头的单词

在正则表达式中,您不需要$字符beacause[A-Z]+[A-Z]+$仅在行中有一个单词时匹配。所以[A-Z]+[A-Z]+。另一个是,我从编码中看到,你可能会使用不在a-z之间的字符,例如é。因此,您可能还需要将这些添加到模式中。[A-ZÉÖ]+[A-Zéö]+并添加所有其他特殊字符。

假设一个固定的缩进,除了matebende的答案外,还需要进一步的更正:

  • for line in fh.split("n"):应该是for line in fh.split("n"):
  • 初始化count = 0必须在这个for循环内
  • for line in re.findall('[A-Z]+[a-z]+$', fh):中的fh是错误的,必须是line

最新更新