C# 在字符串中的特定短语之前查找单词
在所有这些情况下,我都试图找到位于特定短语C# 在字符串中的特定短语之前查找单词,c#,.net,regex,string,linq,C#,.net,Regex,String,Linq,在所有这些情况下,我都试图找到位于特定短语前面的左单词,除了输入3: 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 on
前面的左单词,除了输入3:
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)
所以1)
的结果是短语的左右单词都更好。2)
的结果是,然后后面的单词更好。3)
的结果同样是前后两个单词,这正是我可以使用的,但这个解决方案的问题在第二个结果中显示出来
使用输入2:“我认为绿色自行车更好”
结果是:
1) bike is better
1)
的结果是一个单词“bike”
,位于短语“更好”
之前,但搜索短语“更好”
。2)
的结果不算什么,因为它查找后面的单词“更好”
,所以它是正确的。而3)
的结果也是无效的,即使单词“bike”
在“is better”
之前存在,如果“is better”
之后的单词不存在,并且它是字符串中的最后一个单词
使用输入3:“比红色的好”
结果是:
1) bike is better than
2) than
3) before: bike
3) after: than
1) is better than
2) than
1)
的结果是在之后有一个存在的右单词“更好”
,因为前面的左单词不存在,并且再次包含搜索短语“更好”
。结果1)
是一个单词,那么之后的“
更好”
并使用输入4得出结果:“自行车更好”
:
试试这个:
\w+(?=\sis better)
除了第三次输入外,它将与自行车匹配。原始方式(\w+)更好。
第1组:将为您提供
1) bike is better
1) is better than
2) than
1) bike is better
\w+(?=\sis better)