我正在尝试读取教员的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/

10-11 19:58