linq 查询字符串

【Help】 2016-04-26 11:43:44
string[] arrayKeyword = { "好" ,"你"};
string str = @"我是测试: 测试了 测试好了AA";
string str2 = @"我是测试: 测试了 测试好了 AA";
根据arrayKeyword 查询包含:好或你关键词,然后包含找到字符串的后2位,如果有空格就以空格结束,
比如上面的str结果应该是:好了A . str2的匹配结果应该就是好了,因为有空格就不查找了。
...全文
333 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
範先森 2016-04-26
  • 打赏
  • 举报
回复


        string[] arrayKeyword = { "好", "你" };
        string str = @"我是测试:	测试了 测试好了AA";
        string str2 = @"我是测试:	测试了 测试好了  AA";

        for (int i = 0; i < arrayKeyword.Length; i++)
        {
            int startIndex = str.IndexOf(arrayKeyword[i]);
            if(startIndex<0)
            {
                string getstr = str.Substring(startIndex, 3);
                getstr = getstr.Trim();
            }
            int startIndex1 = str2.IndexOf(arrayKeyword[i]);
            if (startIndex1 < 0)
            {
                string getstr2 = str2.Substring(startIndex1, 3);
                getstr2 = getstr2.Trim();
            }
        }

【Help】 2016-04-26
  • 打赏
  • 举报
回复
引用 1 楼 fxj805835819 的回复:


        string[] arrayKeyword = { "好", "你" };
        string str = @"我是测试:	测试了 测试好了AA";
        string str2 = @"我是测试:	测试了 测试好了  AA";

        for (int i = 0; i < arrayKeyword.Length; i++)
        {
            int startIndex = str.IndexOf(arrayKeyword[i]);
            if(startIndex<0)
            {
                string getstr = str.Substring(startIndex, 3);
                getstr = getstr.Trim();
            }
            int startIndex1 = str2.IndexOf(arrayKeyword[i]);
            if (startIndex1 < 0)
            {
                string getstr2 = str2.Substring(startIndex1, 3);
                getstr2 = getstr2.Trim();
            }
        }

有linq实现方式吗,循环我知道的,想用linq的方式
  • 打赏
  • 举报
回复
var pattern = string.Format(@"(?:{0})\S{{0,2}}", string.Join("|", arrayKeyword));
更新正则组织
  • 打赏
  • 举报
回复
arrayKeyword 已经被合并成pattern ,如果你指的linq是str,str2,那你将这些放入集合,然后Select上面的Regex.Match,同时结果需判断下
【Help】 2016-04-26
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
string[] arrayKeyword = { "好", "你" };
string str = @"我是测试:	测试了 测试好了AA";
string str2 = @"我是测试:	测试了 测试好了  AA";
var pattern = string.Format(@"[{0}]\S{{0,2}}", string.Join(string.Empty, arrayKeyword));
Console.WriteLine(pattern);
Console.WriteLine(Regex.Match(str, pattern).Value);
Console.WriteLine(Regex.Match(str2, pattern).Value);
不懂你的Linq是啥意思
就是想用linq去实现它
  • 打赏
  • 举报
回复
string[] arrayKeyword = { "好", "你" };
string str = @"我是测试:	测试了 测试好了AA";
string str2 = @"我是测试:	测试了 测试好了  AA";
var pattern = string.Format(@"[{0}]\S{{0,2}}", string.Join(string.Empty, arrayKeyword));
Console.WriteLine(pattern);
Console.WriteLine(Regex.Match(str, pattern).Value);
Console.WriteLine(Regex.Match(str2, pattern).Value);
不懂你的Linq是啥意思
【Help】 2016-04-26
  • 打赏
  • 举报
回复
有人知道吗?

8,493

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧