如何使用C#查找字符串中最短单词的索引?

时间:2018-11-27 16:41:13

标签: c# string indexing

假设我有一个字符串,知道我要寻找的单词。这个词是最短的一个。如何不经过每个字符就找到其索引? String.IndexOf()显然不起作用,因为在较长的单词中可能会遇到相同的字符序列。有没有办法解决?知道如何在不使用LINQ的情况下也能做到这一点非常高兴。

例如,单词“ dog”,而我在“ ..doginess,这只狗.. is dogy。”中寻找它。即使不是7,我也会得到7的结果。

2 个答案:

答案 0 :(得分:2)

我将使用正则表达式,其中\b表示“单词边界”。找到一个匹配项,然后返回该匹配项的索引。

var r = new Regex("\bfoo\b");
var result = r.Match(searchString).Index;

答案 1 :(得分:1)

所以我自己解决了。我使用了Regex,与上面的类似。我的一个像这样:

const foo = (params: { collection: string, query: object, sortQuery: {}, cb?: Function }) => { };

foo({ collection: "", query: {}, sortQuery: {} }); // Fine
foo({ collection: "", query: {}, sortQuery: {}, cb: () => { } }); // Fine
foo({ collection: "", query: {}, cb: () => { } }); // Not Fine

感谢您的帮助!