这是我正在寻找的东西:
我有一个“关键字”值...让我们说“狐狸”。我有一个“消息”的价值,如“快速的棕色狐狸跳过懒狗”。理想情况下,我的返回将是事件两侧的+ X或-X字符,如:“...快速棕色狐狸跳过......”(我将在后面添加省略号)。
对这个问题有什么好的,高效的方法?我担心关键字可能出现在消息的开头,也不希望它在每个消息评估中产生很多变化。我也不介意是否切断了单词。
使用这个时想到的一些事情就是我可以使用某种string.contains和string.substring ...等等。那远远不够了?
答案 0 :(得分:4)
您可以使用正则表达式
".{0,"+X+"}"+Regex.Escape(keyword)+".{0,"+X+"}"
因此,如果关键字为fox
且X为5,则您的正则表达式为
.{0,5}fox.{0,5}
此正则表达式将匹配right
的{{1}}和left
一侧的0到5个字符。
您的代码
fox
答案 1 :(得分:2)
您可以使用String.IndexOf
方法查找查找的位置,然后根据返回值和字符串的长度计算一些偏移量,然后您可以使用{检索关键字+/- X字符{1}}方法。