Python中的正则表达式.不匹配

And*_*ius 1 python regex match

我会直截了当:我有一个这样的字符串(但有数千行)

Ach-emos_2
Ach. emos_54
Ach?mos_18
?žuolas_4
Somtehing else_2
Run Code Online (Sandbox Code Playgroud)

我需要删除不符合行a-z?????š??ž加上_any integer(第三和第四线匹配这一点).这应该是不区分大小写的.我认为正则表达式应该是

[a-z?????š??ž]+_\d+ #don't know where to put case insensitive modifier
Run Code Online (Sandbox Code Playgroud)

但是,应该如何看待匹配非alpha(和立陶宛字母)加上下划线加整数的行的正则表达式?我试过了

re.sub(r'[^a-z?????š??ž]+_\d+\n', '', words)
Run Code Online (Sandbox Code Playgroud)

但没有好处.

提前谢谢,对不起,如果我的英语不太好.

Sve*_*ach 5

至于使匹配大小写不敏感,您可以使用模块中的IIGNORECASE标志re,例如在编译正则表达式时:

regex = re.compile("^[a-z?????š??ž]+_\d+$", re.I)
Run Code Online (Sandbox Code Playgroud)

至于删除不匹配此正则表达式的行,你可以简单地构建一个新的字符串,由该行匹配:

new_s = "\n".join(line for line in s.split("\n") if re.match(regex, line))
Run Code Online (Sandbox Code Playgroud)