代码之家  ›  专栏  ›  技术社区  ›  pylearner

字符串匹配并存储在具有重复项的列表中

  •  -1
  • pylearner  · 技术社区  · 8 年前

    如何匹配我已经预定义的字符串,然后如果它们出现在我传递的段落中,则提取它们。

    段落: Paragraph are the building blocks of papers. Many student define paragraph in terms of length: a paragraph is a group of at least five sentences, a paragraph is half a page long, etc. In reality, though, the unity and coherence of ideas among sentences is what constitutes a paragraph

    预定义字符串: ['paragraph','building blocks', 'length', 'page', 'students']

    输出:

     ['paragraph', 'paragraph', 'paragraph', 'paragraph', 'paragraph', 'length', 'page', 'student' ] 
    

    match = []
    string_doob = paragraph.lower()
    for i in predefined_string:
        if i in string_doob:
            match.append(i)
    print(match)
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   SV-97    8 年前

    re )以及 re.findall

    EDIT:without regex:迭代每个字符串的段落并 replace 如果字符串在段落中,直到字符串不在段落中

    编辑2:

    paragraph = "abaabbccchsjieiaaavdh"
    strings = ["aa", "ab"]
    strings_in_para = []
    for string in strings:
        paragraph_copy = paragraph
        while string in paragraph_copy:
            paragraph_copy = paragraph_copy.replace(string, "", 1)
            strings_in_para.append(string)