2024-06-16 12:47:27 发布
网友
我有一个字符串,我想拆分成一个特定类型的列表。例如,我想将Starter Main Course Dessert拆分为[Starter, Main Course, Dessert]
Starter Main Course Dessert
[Starter, Main Course, Dessert]
我不能使用split(),因为它将分割Main Course类型。我怎样才能分开?需要正则表达式吗?你知道吗
Main Course
如果您有一个可接受单词的列表,您可以使用regex union:
import re acceptable_words = ['Starter', 'Main Course', 'Dessert', 'Coffee', 'Aperitif'] pattern = re.compile("("+"|".join(acceptable_words)+")", re.IGNORECASE) # "(Starter|Main Course|Dessert|Coffee|Aperitif)" menu = "Starter Main Course NotInTheList dessert" print pattern.findall(menu) # ['Starter', 'Main Course', 'dessert']
如果只想指定应匹配哪些特殊子字符串,可以使用:
acceptable_words = ['Main Course', '\w+']
我认为只指定“特殊”两个单词标记更实际。你知道吗
special_words = ['Main Course', 'Something Special'] sentence = 'Starter Main Course Dessert Something Special Date' words = sentence.split(' ') for i in range(len(words) - 1): try: idx = special_words.index(str(words[i]) + ' ' + words[i+1]) words[i] = special_words[idx] words[i+1] = None except ValueError: pass words = list(filter(lambda x: x is not None, words)) print(words)
如果您有一个可接受单词的列表,您可以使用regex union:
如果只想指定应匹配哪些特殊子字符串,可以使用:
我认为只指定“特殊”两个单词标记更实际。你知道吗
相关问题 更多 >
编程相关推荐