在Python脚本MySQL查询中使用RegEx进行IP地址验证

时间:2016-10-28 21:24:23

标签: python mysql

我试图在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])$';")

我哪里错了?

2 个答案:

答案 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 { }