gpt4 book ai didi

c# - 在字符串中的特定短语之前查找单词

转载 作者:行者123 更新时间:2023-11-30 17:33:16 25 4
gpt4 key购买 nike

除了输入 3 之外,我试图在所有这些情况下找到位于特定短语 "is better" 之前的左侧单词:

    string input = "I think that green bike is better than the red bike"; // input 1
string input = "I think that green bike is better"; // input 2
string input = "is better than the red one"; // input 3
string input = "bike is better"; // input 4

我已经尝试了三种方法,但没有一种方法没有给我想要的结果,即只找到左边的词,在这种情况下是搜索前的词 "bike"除了输入 3 并且没有搜索短语本身之外,所有三种输入情况下的短语 “更好”:

1)

    var matches = Regex.Matches(input, @"(?:\S+\s)?\S*is better\S*(?:\s\S+)?", RegexOptions.IgnoreCase);
var list = matches.Cast<Match>().Select(match => match.Value).ToList();

foreach (string x in list)
{
Console.WriteLine("1) " + x);
}

2)

     var regex = new Regex(@"(?:is better\s)(?<word>\b\S+\b)");
var matchCollection = regex.Matches(input);

foreach (Match match in matchCollection)
{
Console.WriteLine("2) " + match.Groups["word"].Value);
}

3)

string pattern = @"(?<before>\w+) is better (?<after>\w+)";           
MatchCollection matche = Regex.Matches(input, pattern);

for (int i = 0; i < matche.Count; i++)
{
Console.WriteLine("3) before: " + matche[i].Groups["before"].ToString());
Console.WriteLine("3) after: " + matche[i].Groups["after"].ToString());
}

输入 1: “我认为绿色自行车比红色自行车好” 结果是:

1) bike is better than
2) than
3) before: bike
3) after: than

因此 1) 的结果是短语 "is better" 的左右单词。 2) 的结果是 “then”“is better” 之后的词。 3) 的结果同样是前后两个词,正是我可以使用的,但是这个解决方案的问题显示在第二个结果中。

输入 2: “我认为绿色自行车更好” 结果是:

1) bike is better

1) 的结果是单词 "bike",它位于短语 "is better" 之前,但带有搜索短语 "更好”2) 的结果是空的,因为它在 “更好” 之后查找单词,因此它是正确的。即使 “更好” 之前存在 “bike” 单词,3) 的结果也没有任何意义,以防万一 之后出现单词"is better" 不存在,它是字符串中的最后一个词。

使用输入 3: “比红色更好” 结果是:

1) is better than
2) than

1) 的结果是 "is better" 之后的右词,因为之前的左词不存在,再次搜索短语 "is better " 包括在内。结果 1)“is better” 之后的单词 “then”

输入 4 的结果: “bike is better”:

1) bike is better

最佳答案

试试这个:

\w+(?=\sis better)

它将匹配 bike 除了第三个输入。

关于c# - 在字符串中的特定短语之前查找单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44319324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com