我对正则表达式完全陌生,我试图得到这样的东西:
["Group", "s1", "s2", "Group2"]
从一个字符串:
string = "_GRP_Group||s1||s2||Group2||"
我现在只有:
word = re.findall(r'([^\|]+)', string)
这只是离开了管道,我得到了这个:
['_GRP_Group', 's1', 's2', 'Group2']
有没有办法摆脱_GRP_
前缀?
根据您对其他答案的评论,听起来_GRP_
前缀是字符串的前缀,而不是每个单独的拆分值?
尝试这个:
string = "_GRP_Group||s1||s2||Group2||"
word = re.findall(r"(?:_GRP_)?([^|]+)", string)
您无需使用正则表达式将第一个字符串拆分||
或删除 prefix _GRP_
。您可以只使用split
和切片:
words = "_GRP_Group||s1||s2||Group2||"[5:].split('||')
切片[5:]
将从字符串中排除前五个字符。
如果您不知道_GRP_
会发生在哪里,您可以使用replace
:
words = "_GRP_Group||s1||s2||Group2||".split('||')
words = [word.replace("_GRP_", "") for word in words]