如何为r.match

时间:2015-05-30 15:52:15

标签: python regex rethinkdb

我想使用用户输入在rethinkdb中使用r.match进行搜索 - 应将整个用户输入视为搜索模式。我正在根据用户输入创建正则表达式:

pattern = u'.*(?i){0}.*'.format(user_input)

但是如果用户输入'['或']'或任何其他特殊字符,我会从这样的重新思考中得到错误:

  

正则表达式错误.*(?i)\u0141[.*(部分[.*):缺少]:[。* in:

有没有办法逃避rethinkdb的正则表达式?我曾尝试使用python re.escape但是在将unicode与这样的错误结合起来时失败了:

  

regexp .*(?i)\\u0141.*(部分\\u0141)出错:无效的转义序列:\ u0141

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

使用CREATE TABLE [dbo].[AWBuildVersion]( [SystemInformationID] [tinyint] IDENTITY(1,1) NOT NULL, [Database Version] [nvarchar](25) NULL, [VersionDate] [datetime] NOT NULL, [ModifiedDate] [datetime] NOT NULL, CONSTRAINT [PK_AWBuildVersion_SystemInformationID] PRIMARY KEY CLUSTERED ( [SystemInformationID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO 功能:

re escape

  

<强>逃逸(字符串)

     

返回字符串,所有非字母数字反向;如果要匹配可能包含正则表达式元字符的任意文字字符串,这非常有用。