我正在编写一段代码,用于从正在运行的文本中提取单词。此文本可以包含\ r,\ n等分隔符,这些分隔符可能位于文本中。
我想丢弃所有这些分隔符,只提取完整的单词。我怎么能用Python做到这一点?任何可用于在python中处理文本的库?
答案 0 :(得分:5)
假设您对“单词”的定义与正则表达式模块(re
)的定义(即字母,数字和下划线)一致,则很容易:
import re
fullwords = re.findall(r'\w+', thetext)
其中thetext
是有问题的字符串(例如,来自文件对象f.read()
的{{1}}打开以供阅读,如果这是您从中获取文本的地方的话。)
如果你以不同的方式定义单词(例如你想要包含撇号,例如“它的”将被视为“一个单词”),那就不那么难了 - 只需用作f
的第一个参数适当的模式,例如对于撇号案例findall
。
如果你需要非常,非常复杂(例如,处理不会在单词之间使用中断的语言),那么问题突然变得更加困难,你需要一些第三方包比如nltk。
答案 1 :(得分:1)
假设您的分隔符是空格字符(例如空格\r
和\n
),那么基本str.split()
可以满足您的要求:
>>> "asdf\nfoo\r\nbar too\tbaz".split()
['asdf', 'foo', 'bar', 'too', 'baz']