c# - 验证另一个字符串之间的字符串?

标签 c# regex string

我正在开发一个 ASP.NET 应用程序,在执行 SQL 全文搜索查询后,我必须在其中显示文本文档的描述。我必须在该文档的描述中突出显示用户输入的搜索字符串。现在的问题是:

如果用户输入 rang 作为输入搜索字符串,那么我必须检查该字符串是另一个词的一部分还是作为一个单独的词出现。例如:

1 - rang 可能单独出现,也可能是某个单词的一部分,即 W*rang*ling。

2 - weep 可能单独出现,也可能是 *weep*ing 的一部分。

如何验证字符串的这种条件?是否可以通过 Regex.Match() 实现? 任何帮助都感激不尽。

注意:一个单词可能会在一个段落中以多种方式出现多次。

最佳答案

你可以在正则表达式中做到这一点

string word=Regex.Escape("rang");//your word..used regex.escape to escape regex characters if any

Regex rx = new Regex("\b(.*?)"+word+"(.*?)\b", RegexOptions.IgnoreCase);

foreach (Match m in rx.Matches(yourInputText))
{
    if(m.Groups[1]!="" || m.Groups[2]!="")
    {
        //the word is between some words
    }
    else
    {
        //the word occurs separately
    }
}

关于c# - 验证另一个字符串之间的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13024233/

相关文章:

ruby - 如何删除尾随逗号?

java - 通过 BufferedWriter 发送大字符串

python - 在字符串替换中多次引用相同的输入?

c# - 转换为可为 null 的枚举

regex - Excel VBA - 查找带有通配符的字符串

C# 方法调用者

javascript - 正则表达式,匹配最后一个模式

arrays - 我想将循环的结果存储到数组中

c# - .Net6 WPF 应用程序的 PublishReadyToRun 问题

c# - 如何在不打开浏览器的情况下在 C# 中运行 Web 进程