在python正则表达式中提取字符前后两个词

时间:2019-05-08 13:27:32

标签: python regex

我正在尝试在python正则表达式中某个字符之前和之后提取两个字符串[例如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]。

感谢您的帮助。谢谢。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

这在学习正则表达式以及测试它们时会非常方便。regex101.com

此正则表达式应解决您的问题[A-Za-z]+\.[A-Za-z0-9]+ A-Z-大写字母 字母-抓小写字母 0-9-捕获号码

Here is example

希望这对您有所帮助!