python - 在两个文字python之间匹配正则表达式
问题描述
给定:
s = "SELECT * FROM THIS_TABLE WHERE COL='123'"
从 sql 查询中返回表名,该表名始终在 'FROM' 和 'WHERE' 之间
我尝试过的正则表达式什么都不返回:
re.search('FROM\s+(.*)\s+WHERE', s.upper())
预期输出:
'THIS_TABLE'
解决方案
实际上,您需要使用双引号,这样查询中的单引号就不会被解释。此外,您可以在字符串前面添加 'r' 以让 python 将其解释为 litteral。
您的结果是一个 re.Match 对象,其中的元素包含您要搜索的内容。
这是一个工作副本:
s = r"SELECT * FROM THIS_TABLE WHERE COL='123'"
result = re.search('FROM\s+(.*)\s+WHERE', s.upper())[1]
print(result)
打印“THIS_TABLE”
推荐阅读
- android - 如何将数据从 Android 后台服务传递到活动
- ios - Xcode 11:签名者的自签名根
- postgresql - 如何在 Postgres 中运行相当于 Excel 的 GAMMALN 函数?
- angular - Angular 中的域模块是什么意思?
- excel - 对不同目录中的多个 xlsx 文件进行编辑
- typescript - 用于自定义类型的 TS 语言服务器
- .net - HttpClient.GetStreamAsync 使连接半关闭
- python - 如何在 tkinter 中修复进度条的值(它只是在中间结束)
- angular - 如何使用 Angular 打开探索目录?
- visual-studio-code - .vscode-server 文件夹占用大量空间