我想使用用户输入在rethinkdb中使用r.match进行搜索 - 应将整个用户输入视为搜索模式。我正在根据用户输入创建正则表达式:
pattern = u'.*(?i){0}.*'.format(user_input)
但是如果用户输入'['或']'或任何其他特殊字符,我会从这样的重新思考中得到错误:
正则表达式错误
.*(?i)\u0141[.*
(部分[.*
):缺少]:[。* in:
有没有办法逃避rethinkdb的正则表达式?我曾尝试使用python re.escape但是在将unicode与这样的错误结合起来时失败了:
regexp
.*(?i)\\u0141.*
(部分\\u0141
)出错:无效的转义序列:\ u0141
有什么建议吗?
答案 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
功能:
<强>逃逸(字符串)强>
返回字符串,所有非字母数字反向;如果要匹配可能包含正则表达式元字符的任意文字字符串,这非常有用。