【问题标题】:extract word from string with multiple delimeters从具有多个分隔符的字符串中提取单词
【发布时间】:2015-01-29 03:09:03
【问题描述】:

这是我的网址:

https://videodb.blob.core.windows.net/video/0c7f5ecf-22fc-4032-8ca1-17481f18aaa8_twitter.jpg

现在我想在我的查询中从我的网址获取 twitter。

  var userDetails = context
      .UserDetails
      .Where(x => x.Email == _userDetails.Email && x.Password == _userDetails.Password)
      .Select(x => 
          new UserDetailsModel
          {
              Filename= x.Videourl
          });

在我的文件名中,我只想要文件名而不是查询中的整个 url。

如何做到这一点??

【问题讨论】:

  • 什么是context? _userDetails 是什么?你到底想做什么?
  • 你想要0c7f5ecf-22fc-4032-8ca1-17481f18aaa8_twitter.jpg 吗?
  • @Arshad:我只想推特
  • 你可以使用 System.IO 命名空间:System.IO.Path.GetFileName(x.Videourl) 但如果它来自数据库,则首先将结果加载到内存中
  • @EhsanSajjad:是的,它来自 db

标签: c# linq substring


【解决方案1】:

你可以试试:

string url = "https://videodb.blob.core.windows.net/video/0c7f5ecf-22fc-4032-8ca1-17481f18aaa8_twitter.jpg";
string fileName = url.Substring(url.LastIndexOf('_') + 1);

这将返回您twitter.jpg

如果您需要不带扩展名的文件名:

string fileNameWithoutExtention = System.IO.Path.GetFileNameWithoutExtension(fileName);

它会给你twitter。

【讨论】:

  • 那为什么不var fileName = "twitter.jpg"?!如果 OP 想要推特,请给他们推特 :)
  • 但是如果名字是这样的呢:0c7f5ecf-22fc-4032-8ca1-17481_f18aaa8_twitter.jpg
  • var 将只是字符串。
  • @Mihai:但那是整个 url 来了,不仅仅是名字来了
  • 这也可以,因为我正在获取 _ 的最后一个索引
【解决方案2】:

除了 Arshad 所做的之外,您还可以这样做。

string url = "https://videodb.blob.core.windows.net/video/0c7f5ecf-22fc-4032-8ca1-17481f18aaa8_twitter.jpg";
string[] delimitedString = url.Split('_');
string fileName = delimitedString[delimitedString.Length - 1].Split('.')[0];

【讨论】:

    猜你喜欢
    • 2021-09-07
    • 2023-03-08
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    相关资源
    最近更新 更多