求助:Python 正则两行文本

背景

项目中需要全部替换EventBus,所以需要正则到下面图片中的代码规则,然后check是否已经替换,如果能正则到,则表明这个一个还未替换的代码。


求助:Python 正则两行文本_第1张图片
image.png

要求:

图片中有三处代码,前两处是kotlin写的,第三处是Java写的,1和2 的不同就是写法的不同,其实用Android studio格式换一下就可以变成和1一样的代码格式,但是现实中很多同学不按要求格式化,所以得兼容一行的情况,1和3基本上都一样,另外threadMode = ThreadMode.MAIN不一定固定的,还可能是threadMode = ThreadMode.ASYNC等情况,而@Subscribe(.*)比较固定。

尝试解决:

这个问题的关键在于正则的规则的匹配,其次是选用 Python re库的哪个方法,前者我尝试过去写,能匹配到两行,但是指定不了两行的内容。
正则:

parent=r'@Subscribe\(.*\)\n.+'

search = re.findall(parent, str, re.M)

比如我想定制后面的HomeSplashStateEvent,也可以叫TestEvent、DemoEvent,在正则中可能需要:

'HomeSplashStateEvent | TestEvent | DemoEvent'

大家可以帮助我一下吗?

你可能感兴趣的:(求助:Python 正则两行文本)