Spe*_*dge 2 c# regex substring indexof
我试图找到一种比下面的代码更优雅的方法,以基于其中一个单词的索引获取句子列表。因此,例如,如果我给它一个单词列表,例如用户名,它会找到所有这些单词的索引(此操作已经完成,并且是GetWordsMatches方法),然后使用该单词的索引,我想抓住整个句子。
我有两个问题,一个,我无法弄清楚如何在单词上一个单词之前看一眼,只是结束一两个,我无法弄清楚如果最后一个单词匹配不包含单词,如何防止它崩溃文件结束前的句点。
public static List<string> GetSentencesFromWords(List<string> Words, string FileContents)
{
List<string> returnList = new List<string>();
MatchCollection mColl = GetWordsMatches(Words,FileContents);
foreach (Match ma in mColl)
{
int tmpInd = ma.Index;
int endInd = FileContents.IndexOf(".", tmpInd);
string tmp = FileContents.Substring(tmpInd,endInd);
returnList.Add(tmp);
}
return returnList;
}
Run Code Online (Sandbox Code Playgroud)
有没有更优雅的方法可以做到这一点?
快...
您可以LastIndexOf(str, index)用来从某个位置向后搜索,
对于“结束条件”,您应该if在.搜索中添加一个(如果到达末尾则返回“ -1”),
...无论如何,最好分割文件内容(用.定界符),这样就不会出现最后一个问题,因为它会占用最后一行。然后搜索单词(在每行中,IndexOf使用current index)。或者,我可能会使用枚举数(w / yield return)扩展方法来并行执行所有操作-并返回IEnumerable,以便您可以更“实用”,在查询中添加其他内容。
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |