Python 从多行中提取特定字符串

发布于 2022-09-06 04:49:00 字数 297 浏览 16 评论 0

我有一个 sql 文本,我想把其中的 sql 逐个提取出来

文本例如:

select xxxx from aaaa where bbb=123;
select yyy from
aaaa where
 bbb=123;
…
…

每一个 sql 都是以 select 开始,; 分号结束。一个 SQL 可以是一行,也可以是多行
请教各位专家,这个在 Python3 中如何高效的实现?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

远山浅 2022-09-13 04:49:00

re.compile(r"select.*?from.*?where.*?;", re.S|re.M)

格子衫的從容 2022-09-13 04:49:00
def get_txt_sql(file_path):
    with open(file_path) as f:
        data = f.read()
        return data.split(';')
画▽骨i 2022-09-13 04:49:00
# -*- coding:utf-8 -*-

sqls = []

def get_txt_sql(file_path):
    with open(file_path) as f:
        with_aline = ""
        for line in f:
            with_aline += " " + line.rstrip("\n")
            if with_aline.endswith(";\n") or with_aline.endswith(";"):
                sqls.append(with_aline.strip("\n").strip())
                with_aline = ""


if __name__ == "__main__":
    get_txt_sql("./sql.txt")
    print(sqls)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文