我正在尝试在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]。
感谢您的帮助。谢谢。
答案 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-捕获号码
希望这对您有所帮助!