我有以下内容:
string text = "Select [id] AS [FROMId] FROM [TASK] ORDER BY id"
我希望使用text.IndexOf("FROM")
来查找FROM开始的位置。
我想找到FROM的位置,而不是FROMId的位置。
LastIndexOf
或FirstIndexOf
不正确答案,因为文字可能类似
string text = @"Select [id] AS [FROMId],
newId as [newFROMId] FROM [TASK] ORDER BY [FROMId]"
我需要indexof进行精确匹配。
有什么想法吗?
答案 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因为你有" " (空间)。