【问题标题】:C# Selecting part of string when there is a matching result in part of the string [duplicate]C#在部分字符串中存在匹配结果时选择部分字符串[重复]
【发布时间】:2017-10-14 16:16:35
【问题描述】:

我有一个基本上看起来像这样的字符串:

/giveaway/host/setup/ref=aga_h_su_dp?_encoding=UTF8&value_id=1484778065

这里的技巧是字符串的长度可以变化并且会改变......但是“value_id = something”的部分总是保持不变......所以我遇到的问题是我可以做类似的事情这个:

var myId = string.SubString(30,45);

to get the value after value_id= /*this one here*/

我认为这可以通过正则表达式或其他方式解决,但我不太确定如何编写这样的。有人可以帮帮我吗?

【问题讨论】:

  • 用'='分割然后得到你的字符串数组的最后一个索引
  • @arslanaybars 如果字符串中有多个“=”符号怎么办?
  • 不是一直都是字符串吗? @User987
  • 使用 Uri 类。
  • @User987 似乎是 url 的一部分。所以不需要字符串操作。 var value = HttpUtility.ParseQueryString(HttpUtility.HtmlDecode(input))["value_id"];

标签: c# asp.net regex string substring


【解决方案1】:

你可以试试这个。如果你的 value_id 总是你的字符串的最后一个,你可以使用它。

var str = "/giveaway/host/setup/ref=aga_h_su_dp?_encoding=UTF8&value_id=1484778065";

var valueId = str.Split('=').LastOrDefault();

结果:1​​484778065

希望对你有帮助

【讨论】:

    【解决方案2】:

    你可以按'value_id='来分割

    string[] tokens = str.Split(new[] { "value_id=" }, StringSplitOptions.None);
    
    if(tokens.Length>1){
       //parse tokens[1] with the value
    }
    

    【讨论】:

    • 好方法。 @User987 你也可以用这个。
    • @arslanaybars 如果有多个 = 会起作用吗?
    • 它会起作用,但如果 value_id= 是最后一个。如果值后面还有其他数据需要分隔,那么再用分隔符进行分割。
    猜你喜欢
    • 2012-06-15
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 2014-08-01
    • 2022-06-15
    相关资源
    最近更新 更多