python - 在python正则表达式中提取字符前后的两个单词
问题描述
我正在尝试在 python regex 中的某个字符 [例如 dot(.) ] 之前和之后提取两个字符串
我尝试在点之后提取表名,但无法确定提取数据库名称。
编辑:查询变量中可能有多个点,但我想提取第一个匹配项。
import re
query = 'select * from xxx.yyy'
table_name = re.search('\.(.*)\s', query).group(1).split(" ",2)[0]
print table_name
输出:
yyy
我希望输出是 xxx.yyy 或者可以在列表中也可以,例如 [xxx,yyy]。
任何帮助表示赞赏。谢谢。
解决方案
使用模式'(\w+)\.(\w+)'
前任:
import re
query = 'select * from xxx.yyy'
table_name = re.search('(\w+)\.(\w+)', query)
print table_name.groups()
#or
print re.search('((\w*)\.(\w*))', query).group(0)
输出:
('xxx', 'yyy')
xxx.yyy
推荐阅读
- python - sklearn/numpy 依赖项的问题
- shell - 如何在 AWK 中一起打印 $1、$2 和所有剩余参数
- scala - 如果我有多个,则使用 regexp_replace 将空格替换为空值
- android - 文字转语音停止说话,但循环暂停并没有停止
- reactjs - 我们如何在构造函数方法中初始化反应打字稿中的状态,如果它具有特定的接口类型
- laravel - 在 Shopify Private 应用中,代理 URL 重定向到应用的服务器 URL
- java - 通过主键访问另一个表中的列
- android - appUpdateInfo.isUpdateTypeAllowed (AppUpdateType.IMMEDIATE) 在 Android In-App Update API 中的作用是什么?
- azure - 用户从本地连接到 Azure
- sql-server-2012 - sp_executesql 参数无法识别