我想在大字长文本中搜索存储在变量kw
中的关键字,并找到找到关键字的 FIRST 位置。
以下代码不会与 EXACT 关键字匹配。
if (webData.IndexOf(kw, StringComparison.OrdinalIgnoreCase) != -1)
{
found = true;
int pos = webData.IndexOf(kw, StringComparison.OrdinalIgnoreCase);
}
如何使用正则表达式?
Match match = Regex.Match(webData, @"^kw$", RegexOptions.IgnoreCase);
if (match.Success)
{
int pos = //Matching position
}
答案 0 :(得分:4)
你可以做到
Match match = Regex.Match(webData, @"\b"+Regex.Escape(kw)+@"\b", RegexOptions.IgnoreCase);
if (match.Success)
{
int pos = match.Index;
}
对于完全匹配,您需要使用\b
更多信息here
答案 1 :(得分:1)
Match
会有Index
属性正在执行您想要的内容:
Match match = Regex.Match(webData, pattern, RegexOptions.IgnoreCase);
if (match.Success)
{
int pos = match.Index;
}
索引 - 原始字符串中找到捕获的子字符串的第一个字符的位置。 (继承自Capture。)