首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用正则表达式查找字符串中某个模式的所有匹配项

使用正则表达式查找字符串中某个模式的所有匹配项
EN

Stack Overflow用户
提问于 2018-06-08 03:28:14
回答 1查看 77关注 0票数 -1

所以我对regex非常陌生,我已经在我的项目中成功地使用了它,但只找到了一个特定的匹配项。

现在,我试图在html源代码中找到某个url模式的所有匹配项。

urls如下所示:

链接示例1:https://clips.twitch.tv/KindYummyCarrotPeteZaroll?tt_content=video_thumbnail

链接示例2:https://clips.twitch.tv/AmericanOilyMeerkatSaltBae?tt_content=video_thumbnail

我用下面的代码搜索链接:

代码语言:javascript
复制
       MatchCollection matches = Regex.Matches(source, @"^(https://clips.twitch.tv/)+(.*?)+(video_thumbnail)$");

        if (matches.Count <= 0)
        {
            MessageBox.Show(matches.Count.ToString() + " urls found");
        }
        else
        {
            MessageBox.Show(matches.Count.ToString() + " urls");
        }

我第一次发现源字符串是错误的,所以我在下面的字符串中尝试了这个正则表达式:

代码语言:javascript
复制
string source = (" adsfgsdfg adsfg assdfg https://clips.twitch.tv/KindYummyCarrotPeteZaroll?tt_content=video_thumbnail dfgsdfgszdfg asdfg https://clips.twitch.tv/AmericanOilyMeerkatSaltBae?tt_content=video_thumbnailsadfgdf g");

我也尝试过这个正则表达式:

代码语言:javascript
复制
Regex.Matches(source, @"^(https://clips.twitch.tv/)+([a-z0-9A-Z]{1,100})+(\?)+(tt_content=video_thumbnail)$");

但结果始终是找到0个urls。

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-06-08 03:31:14

您的正则表达式模式中有未转义的字符。.有一个特殊的正则表达式用法,所以要表示实际的句号,它们前面必须有一个反斜杠。试试这个:

代码语言:javascript
复制
(https://clips\.twitch\.tv/)(?:(?!http).)*?(video_thumbnail)

还要注意,^和$没有了;如果包括它们,只有在整个字符串匹配的情况下才匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50748866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档