python - 使用 Python 从文本文件中获取某些单词和短语

标签 python string list for-loop

我有这段代码,它会遍历一个文本文件,逐行抓取它并将其分成单独的单词。这一切都很好,但在我的文本文件中,我有某些以“-”开头和结尾的单词和短语,例如“-foo-”或“-foo bar-”。现在,它们由于代码被分为“-foo”和“bar-”。不过我明白为什么会发生这种情况。

我的计划是获取那些以 '-' 开头和结尾的实例,将它们存储到一个单独的列表中,然后用户将每个短语更改为新的内容,将它们放回列表中。如果某个短语是两个单独的单词,我如何告诉它抓取它?

def madLibIt(text_file):
    listOfWords = [] #creates a word list
    for eachLine in text_file: #go through eachLine, and split it into 
        #seperate words
        listOfWords.extend(eachLine.split())
 print listOfWords

最佳答案

调用不带分隔符的 str.split() 会按空格分割文本,因此您不会使用 - 作为分隔符。

您可以使用re.findall()使用模式 (-.+?-):

matches = re.findall(r'(-.+?-)', 'This is a -string- with a -foo bar-')
print(matches) # ['-string-', '-foo bar-']

关于python - 使用 Python 从文本文件中获取某些单词和短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16000380/

相关文章:

python - 如何使用 Python 的 Paramiko 模块 ssh 到需要两次密码身份验证的服务器?

java - Java 的 String.intern() 的目的是什么?

python - 对列表元素进行 Grep

python - pytest支持验证吗?

python - 使用 python-pptx 将 matplotlib 图形保存在 ppt 文件中,而不保存图形

java - 如何从用户那里获取整数和字符串

string - 在线性时间内找到最长的双后缀

c++ - 用于插入的高效数据结构

java - 使用 java 列表填充 phpMyAdmin 表

python - 没有共享轴的叠加图 : left-bottom vs. 右上角对 (python/matplotlib)