假设我有一个字符串,知道我要寻找的单词。这个词是最短的一个。如何不经过每个字符就找到其索引? String.IndexOf()
显然不起作用,因为在较长的单词中可能会遇到相同的字符序列。有没有办法解决?知道如何在不使用LINQ的情况下也能做到这一点非常高兴。
例如,单词“ dog”,而我在“ ..doginess,这只狗.. is dogy。”中寻找它。即使不是7,我也会得到7的结果。
答案 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
感谢您的帮助!