首页 > 解决方案 > 从字符串中查找匹配模式并列出该模式字符串

问题描述

检查下面的代码。在imgList字符串列表中,我想找到所有匹配的模式[img=。所以基本上我想说c#:给我包含[img=. 所以它会找到匹配从[img=until开始]。我已经尝试过Regex.Matches像下面这样,但它不会在列表中重新运行我应该[img=15][img=16]

C#

  var imgList = new List<string>();
            string text = "abcdef[img=15]ghijklmnop[img=16]qrstuvwxyz";
           
            MatchCollection matchList = Regex.Matches(text, @"^.*[img=$]");
            imgList = matchList.Cast<Match>().Select(match => match.Value).ToList();

标签: c#

解决方案


你可以试试这个模式 \[img=.*?\]

"\[" 匹配字符 "[" 字面意思(区分大小写)

"img=" 匹配字符 "img=" 字面意思(区分大小写)

“。*?” 匹配任何字符(行终止符除外)“*?” 量词 - 在零次和无限次之间匹配,尽可能少,根据需要扩展(惰性)

"\]" 与字符 "]" 逐字匹配(区分大小写)


推荐阅读