0

这是我要找的东西:

我有一个“关键字”值......让我们说“狐狸”。我有一个“消息”值,例如“快速棕色狐狸跳过懒狗”。理想情况下,我的回报将是事件两侧的 +X 或 -X 字符,例如:“......快速棕色狐狸跳过......”(我将在之后添加省略号)。

什么是解决这个问题的好方法?我担心关键字可能出现在消息的开头,并且也不希望它在每个消息评估中都搅动很多。我也不介意话被截断。

处理此问题时想到的几件事是我可以使用某种 string.contains 与 string.substring.. 等相结合。那还远吗?

4

2 回答 2

4

您可以使用正则表达式

 ".{0,"+X+"}"+Regex.Escape(keyword)+".{0,"+X+"}"

因此,如果关键字是fox并且 X 是 5,那么您的正则表达式将是

 .{0,5}fox.{0,5}

right此正则表达式将匹配 .和left的0 到 5 个字符fox


你的代码

 String output=Regex.Match(input,regex).Value;
于 2013-07-05T15:54:56.527 回答
2

你可以使用String.IndexOfmethod来找到find的位置,然后根据返回值和字符串的长度计算一些偏移量,然后你就可以用Substringmethod检索关键字+/- X字符了。

于 2013-07-05T15:50:47.153 回答