下面的代码执行以下功能,我打算集成到更大的应用程序。
1.将大的输入字符串input
在输入字符串中出现的任何地方按点(.)字符拆分。
1.将拆分后的子串存储到数组result[]
中;
1.在foreach循环中,匹配一个子字符串以匹配关键字的出现。
1.如果匹配,则从该匹配子串在原始输入字符串中的位置开始,最多打印300个字符。
string[] result = input.Split('.');
foreach (string str in result)
{
//Console.WriteLine(str);
Match m = Regex.Match(str, keyword);
if (m.Success)
{
int start = input.IndexOf(str);
if ((input.Length - start) < 300)
{
Console.WriteLine(input.Substring(start, input.Length - start));
break;
}
else
{
Console.WriteLine(input.Substring(start, 300));
break;
}
}
输入实际上是大量的文本,我认为这应该通过正则表达式来完成。作为一个新手,我不能把所有的东西放在一起使用正则表达式。
匹配关键字。Match m = Regex.Match(str, keyword);
从点(.)开始的300个字符,即从匹配的句子开始,打印300个字符"^.\w{0,300}"
我打算做的是:
1.在输入文本中搜索关键字。
1.就像找到匹配一样,从包含关键字的句子开始,并从输入字符串中打印最多300个字符。
我该怎么做?请帮帮我
2条答案
按热度按时间aij0ehis1#
如果我没弄错的话,你需要做的就是找到你的
keyword
并捕获所有后续内容,直到你找到第一个点或达到最大字符数:C#代码:
ikfrs5lh2#
试试这个正则表达式:
说明:
***
(?= subexpression)
***零宽度正前瞻Assert。***
(?<= subexpression)
***零宽度正向后看Assert。***
*?
***匹配前一个元素零次或多次,但次数越少越好。一个简单的代码: