首页 > 解决方案 > 在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]。

任何帮助表示赞赏。谢谢。

标签: pythonregex

解决方案


使用模式'(\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

推荐阅读