1

目前我正在为 SQL 查询编写一个非常简单的文本框到查询解析器。需要做的一件事是需要找到并正确参数化放在单引号中的字符串。我已经用谷歌搜索并逐页查找答案,但是我找不到任何帮助。

给定查询

INSERT INTO PracticeTable
VALUES ('Hello 'World')

或者例如,

WHERE users.UserProfiles = 'John's Profile'

我需要想办法

  1. 查找单引号中的字符串
  2. 从内部提取字符串

我可以使用循环自己进行参数化。

所以要完成查询段中的例子

WHERE users.UserProfiles = 'John's Profile'

我应该得到一个匹配 'John's Profile' 的匹配项,然后能够从它们内部删除整个字符串 John's Profile。

谁能帮我?另外,任何人都可以建议一种更好的方法来接收用户的查询并运行它吗?我一直在寻找建议。

谢谢!

4

1 回答 1

0

测试以下内容。它将捕获带引号的字符串。

[^']*'(.+)'

=>

WHERE users.UserProfiles = '约翰的个人资料'

提取组

约翰的个人资料

我想提一下,您的 WHERE 子句是错误的 SQL,因为您的内部 ' 没有被转义。


正如您所问的,引用的字符串可以通过以下方式轻松捕获:

[^']*('.+')
于 2012-09-15T01:20:39.610 回答