以下是我想要的:
我有一个"关键字"值。。。比方说"狐狸"。我有一个"信息"值,比如"敏捷的棕色狐狸跳过懒惰的狗"。理想情况下,我的返回应该是事件两边的+X或-X个字符,比如:"…快速的棕色狐狸跳过去…"(我会在后面添加省略号)。
解决这个问题的好方法是什么?我担心关键词可能会出现在消息的开头,也不希望它在每一条消息的评估中都引起很大的骚动。我也不介意文字被剪掉。
在处理这个问题时,我想到的几件事是,我可以使用某种字符串.contents与字符串.substring等组合。这还远吗?
您可以使用regex
".{0,"+X+"}"+Regex.Escape(keyword)+".{0,"+X+"}"
所以,若关键字是fox
,X是5,则正则表达式将是
.{0,5}fox.{0,5}
此正则表达式将在fox
的right
和left
侧匹配0到5个字符。
您的代码
String output=Regex.Match(input,regex).Value;
您可以使用String.IndexOf
方法查找查找的位置,然后根据返回值和字符串长度计算一些偏移量,然后使用Substring
方法检索关键字+/-X字符。