我想从API过滤出结果,并想排除某些结果显示的形式,例如:
LEGACY-NA-XboxOfficialServer219
EU-PVP-XboxOfficial-TheIslanSmallTribes219
EU-PVP-XboxOfficial-TheIsland219
我想要最后的结果。因此,我在小部落部分留下了负面的印象,但现在需要一些东西来确定它的遗产是否存在,并跳过它的结果
我到目前为止所拥有的:
re.search(r"[a-zA-Z](?<!SmallTribes)" + str(number) + r"$", x['Name']):
我试图让它仅显示
EU-PVP-XboxOfficial-TheIsland219
答案 0 :(得分:1)
您可以使用
^(?!LEGACY).*[a-zA-Z](?<!SmallTribes)219$
请参见regex demo。
详细信息
^
-字符串的开头(?!LEGACY)
-开头没有LEGACY
子字符串.*
-除换行符以外的任意0+个字符,并且尽可能多[a-zA-Z]
-一封信(?<!SmallTribes)
-之前没有SmallTribes
子字符串... 219$
-字符串末尾的219
数字。在Python中:
re.search(r"^(?!LEGACY).*[a-zA-Z](?<!SmallTribes){}$".format(number), x['Name']):
import re
strs = ['LEGACY-NA-XboxOfficialServer219',
'EU-PVP-XboxOfficial-TheIslanSmallTribes219',
'EU-PVP-XboxOfficial-TheIsland219']
number = 219
rx = re.compile(r"^(?!LEGACY).*[a-zA-Z](?<!SmallTribes){}$".format(number))
for s in strs:
if re.search(rx, s):
print(s)
# => EU-PVP-XboxOfficial-TheIsland219