字符串.IndexOf完全匹配



我有以下内容:

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

我想使用CCD_ 1来查找FROM的起始位置。

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

LastIndexOfFirstIndexOf不是正确答案,因为文本可能与类似

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

我需要的索引做精确匹配。

有什么想法吗?

由于FROM是一个SQL保留字,通常两边都有空格,因此您可以查找它,因为它会在F之前提供空格的地址,所以添加一个来获得F本身的位置:

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

这可能不一定能处理所有边缘情况(a),但要正确地做到这一点,您可能必须实现SQL解析器,以确保您能够正确定位真正的from关键字,并将其与其他可能性区分开来。


(a)例如:

select [a]FROM[tble] ...
select 'got data from unit #' | unit from tbl ...

等等

相关内容

最新更新