请问我应该如何找到 字符串在指定Paragraph中完整的TextSelection列表,并且需要实现大小写敏感和全词匹配。
我尝试使用以下两种方法:
1.下面这个接口只会返回找到的第一个TextSelection。
- Code: Select all
paragraph.Find(string given, bool caseSensitive, bool wholeWord)
2.以下代码不能实现全词匹配
- Code: Select all
/// <summary>
/// 查找段落中的文本所在TextSelection
/// (注:未能实现全词匹配)
/// </summary>
/// <param name="paragraph">段落</param>
/// <param name="given">查找的字符串</param>
/// <param name="isCaseSensitive">是否大小写敏感</param>
/// <returns></returns>
public List<TextSelection> FindSelectionList(Paragraph paragraph, string given, bool isCaseSensitive)
{
var findSelectionList = new List<TextSelection>();
if (!string.IsNullOrEmpty(paragraph.Text))
{
var startIndex = 0;
var stringComparison = isCaseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase;
while (true)
{
var index = paragraph.Text.IndexOf(given, startIndex, stringComparison);
if (index < 0)
{
break;
}
startIndex = index + given.Length;
var findSelection = new TextSelection(paragraph, index, startIndex);
findSelectionList.Add(findSelection);
}
}
return findSelectionList;
}