首页 > 解决方案 > 如何提取python字符串中的单词

问题描述

我有很多字符串,如下所示:

Einwohnerzahl

244.951

StudierendeamHochschulort
[...]

单词现在用“\n”分隔。如何将整个单词和数字分隔在单独的列表中?因为我得到了很多不完全相同的字符串,所以我正在寻找一种解决方案,它可以处理诸如单词/数字的不同位置或字符串中缺少的单词/数字之类的变化。


最终解决方案:

在第一步中,我使用

cleaned_string = re.sub('['+string.punctuation+']', '', cleanstring).split() 

生成以下输出:

print(cleaned_string)
['Einwohnerzahl', '244951', 'StudierendeamHochschulort', '57573', 'Studierendenanteil']

之后我正在使用

_re_digits = re.compile(r"(-?(?:(?:\d+(?:\.\d*)?)|(?:\.\d+)))")
pure_zahlen = []
for element in cleaned_string:
    pure_zahlen += [ float(n) for n in _re_digits.findall(element)]

pure_text = [x for x in cleaned_string if not (x.isdigit() or x[0] == '-' and x[1:].isdigit())]

从 clean_string 列表中分离文本和数字。

这给了我

print(pure_zahlen)
[41532.0, 2902.0, 70.0, 3739.0, 151319.0]

print(pure_text)
['Einwohnerzahl', 'StudierendeamHochschulort', 'Studierendenanteil']

标签: pythonstringextractword

解决方案


用这个:

s = 'apple\nbanana' #any phrase that you like
print(s.split('\n'))

输出:

['apple', 'banana']

如果您希望将其作为单独的单词/短语:

s = 'apple\nbanana' 
for i in s.split('\n'):
    print(i)

输出:

apple
banana

推荐阅读