string.IndexOf完全匹配

时间:2016-05-25 11:31:08

标签: indexof

我有以下内容:

string text = "Select [id] AS [FROMId] FROM [TASK] ORDER BY id"

我希望使用text.IndexOf("FROM")来查找FROM开始的位置。

我想找到FROM的位置,而不是FROMId的位置。

LastIndexOfFirstIndexOf不正确答案,因为文字可能类似

string text = @"Select [id] AS [FROMId], 
                newId as [newFROMId] FROM [TASK] ORDER BY [FROMId]"

我需要indexof进行精确匹配。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

由于FROM是一个SQL保留字,通常在两边都有空格,你可以查找它,因为那样会在之前给你的空间地址{ {1}},添加一个以获取F本身的位置:

F

这可能不一定照顾所有边缘情况(a)但是,为了正确地执行此操作,您可能必须实现SQL解析器以确保您可以正确找到真实的int index = text.IndexOf(" FROM ") + 1 关键字,并将其与其他可能性区分开来。

(a)例如:

from

等等。

答案 1 :(得分:-1)

如果您只是添加一个空格,使其看起来像

int index = text.IndexOf("FROM ") - 1

-1因为你有" " (空间)。