python多行正则表达式,替代*

hc2pp10m  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(414)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

5小时前关门了。
改进这个问题
我想将buildscript块与其所有内容匹配。这是我到目前为止试过的,但对我不起作用。有什么可以替代的吗?更具体一点?

import re 

s = """
buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath 'com.github.docker-java:docker-java:3.1.5'
    }
}

mavenVersioning {
    Project 's'
}

buildscript {
    dependencies {
        classpath 'com.github.docker-java:docker-java:3.1.5'
    }
}
"""

match = re.search(r'buildscript {.*}.*}', s, re.DOTALL)

text = match.group(0)

print(text)
shyt4zoc

shyt4zoc1#

使用这个正则表达式,删除新行,这样正则表达式就可以读取所有内容

s = """
buildscript {
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
classpath 'com.github.docker-java:docker-java:3.1.5'
}
}

mavenVersioning {
Project 's'
}

buildscript {
dependencies {
classpath 'com.github.docker-java:docker-java:3.1.5'
}
}
"""
import re
res=re.sub('\n','',s)
res=re.findall(r'buildscript \{(.*)\}mavenVersioning',res )
print(res)

# ["repositories {mavenLocal()mavenCentral()}dependencies {classpath 'com.github.docker-java:docker-java:3.1.5'}"]

相关问题