我是Python和编码的初学者,所以我觉得我对这个问题不太了解。我正在尝试用字符串制作一个列表,但有一些修改。
假设我有一些像这样的代码:
input_text = "gʷʰsoʷngʲʷʰos"
modifiers_list = ["ʷ", "ʰ", "ʲ"]
我希望能够将输入文本转换为字符列表,但修饰符是前面字符的一部分,例如:
output_list = ['gʷʰ', 's', 'oʷ', 'n', 'gʲʷʰ', 'o', 's']
我一直试图提出一个解决方案几天,看了很多SO线程但没有成功。
答案 0 :(得分:1)
您可以使用正则表达式:
import re
modifiers = ''.join(map(re.escape, modifiers_list))
pattern = r'\w(?:[{}])*'.format(modifiers)
output_list = re.findall(pattern, input_text)
print(output_list) # ['gʷʰ', 's', 'oʷ', 'n', 'gʲʷʰ', 'o', 's']
构造的模式看起来像\w(?:[ʷʰʲ])*
,它匹配单个字符,后跟任意数量的修饰符。