我试图在SELECT语句中使用REGEX从MySQL数据库中提取IP地址。当我在MySQL控制台中运行Query时,它返回预期的结果:
SELECT * FROM database.table WHERE field3 REGEXP '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$';
当我通过python脚本运行相同的查询时,它返回的结果不是IP地址。
query = ("SELECT * FROM database.table WHERE field3 REGEXP '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$';")
我哪里错了?
答案 0 :(得分:0)
Marc B.钉了它。我引用他的评论。
\。大概。其中一个反斜杠将被python解析掉,只留下。当它到达mysql时,然后被解析为"这是一个点,而不是单个字符的通配符"。 \。直接在mysql中将被解析为反斜杠后跟dot - Marc B
答案 1 :(得分:0)
尝试在python中将字符串放在字符串之前使其成为原始字符串,以便它正确地包含后面的重击。
e.g。
import { NgModule } from '@angular/core';
import { IonicApp, IonicModule } from 'ionic-angular';
import {
Devices,
} from '../providers';
import { MyApp } from './app.component';
import { Login } from '../pages/login/login';
import { Page1 } from '../pages/page1/page1';
import { Page2 } from '../pages/page2/page2';
@NgModule({
declarations: [
MyApp,
Login,
Page1,
Page2,
],
imports: [
IonicModule.forRoot(MyApp),
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
Login,
Page1,
Page2
],
providers: [
Devices,
]
})
export class AppModule { }