我正在尝试读取教员的csv文件。我的目的是计算文件中每个标准化学位(例如PhD,Md,JD等)的频率。文件包含同一学位(例如PhD,Ph.D和Phd)的不同变化。
到目前为止,我已经使用.lower.split()
将文本转换为包含所有小写字母的列表,但是列表包含相同程度的不同版本,例如(phd vsph.d vs ph.d.)。如何解决此问题?
最佳答案
您可以尝试使用具有以下模式的re.findall
进行博士学位。
s = 'Richard Feynman had a Ph.D. and Albert Einstein also had a phd'
print(len(re.findall('\\b(?i)ph\.?d\.?\\b', s)))
2
Demo
如果要一起计算所有学位类型,那么仍然可以使用正则表达式模式(交替使用)对
re.findall
进行一次调用:(?i)ph\.?d\.?|md|jd
如果需要单独的计数,则可以单独调用
re.findall
。关于python - 如何在Python中使用正则表达式,以便我的代码将“PhD”和“Ph.D”视为同一字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51979193/