找到String中的所有Url

时间:2017-09-25 11:12:34

标签: c# regex

使用此正则表达式时,如果Url是类似的话,我无法找到该网址 CIO.in,Compgterworld.iq,ChannelWorld.in等。 相反,此正则表达式将电子邮件ID作为url。 如何排除电子邮件ID并将这些网址作为有效网址。

 const string MatchUrlPattern = 
   @"(^(http[s]?://)?([w]{3}[.])?([a-z0-9]+[.])+com(((/[a-z0-9]+)*(/[a-z0-9]+/))*([a-z0-9]+[.](html|php|gif|png))?)$)|(^([.]/)?((([a-z0-9]+)/?)+|(([a-z0-9]+)/)+([a-z0-9]+[.](html|php|gif|png)))?$)";

 Regex urlrx = new Regex(MatchUrlPattern, RegexOptions.Compiled | RegexOptions.IgnoreCase);

 MatchCollection urlmatches = rx.Matches(contentString);

 int urlnoOfMatches = matches.Count;

 foreach (Match match in urlmatches)
 {
     Console.WriteLine(match.Value.ToString());
 }

2 个答案:

答案 0 :(得分:0)

将以下正则表达式用于所有测试方案

/** Component **/
data () {
  todo : {
    // whatever
  }
},
methods: {
  addTodo () {

    // Will add same todo reference to state list
    // which can cause “Do not mutate vuex store state outside mutation 
    // handlers” exception

   ADD_TODO({todo : this.$data.todo}) 

  }
},

答案 1 :(得分:-1)

我认为以这种方式过滤网址并不是一个好主意,但是如果您仍想捕获这些网址,请使用以下网址:


    ((http|ftp|https)://)?([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?

我在此页面上使用了该文本作为输入,它给了我这些结果:


    CIO.in
    Compgterworld.iq,ChannelWorld.in
    RegexOptions.Compiled
    RegexOptions.IgnoreCase
    rx.Matches
    matches.Count
    Console.WriteLine
    match.Value.ToString
    Path.Combine
    3.0
    2017.9.24.27120

这就是我的意思,以这种方式过滤它并不理想