当前位置: 首页 > 知识库问答 >
问题:

基于模式C提取字符串的一部分#

贝礼骞
2023-03-14

我试图根据特定的模式在C#中提取字符串的一部分。

示例:

模式1=

 toto_tata_2021_titi_tutu.txt should return 2021

模式2=

 toto_tata_titi_2022_tutu.csv should return 2022

谢谢

共有2个答案

吕奇
2023-03-14

使用库”System.文本。正则表达式”:

public static string ExtractYear(string s)
{
    var match = Regex.Match(s, "_([0-9]{4})_");
    if (match.Success)
    {
        return match.Groups[1].Value;
    }
    else
    {
        throw new ArgumentOutOfRangeException();
    }
}

像那样吗?
对于这样的情况,Regex听起来像一个伟大的选项。

徐景明
2023-03-14
string pattern = "string1_string2_{0}_string3_string4.txt";
int indexOfPlaceholder = pattern.IndexOf("{0}");
int numberOfPreviousUnderscores = pattern.Substring(0, indexOfPlaceholder).Split('_', StringSplitOptions.RemoveEmptyEntries).Length;
string stringToBeMatched = "toto_tata_2021_titi_tutu.txt";
string stringAtPlaceholder = stringToBeMatched.Split('_')[numberOfPreviousUnderscores];
 类似资料:
  • 问题内容: 提取像这样的字符串的整数部分的最佳方法是什么 您如何获得123部分。您可以使用Java的Scanner对其进行破解,还有更好的方法吗? 问题答案: 为什么不只使用正则表达式来匹配所需的字符串部分? 这就是您所需要的,再加上所有需要的字符。 查看http://www.regular-expressions.info/tutorial.html,了解正则表达式的工作原理。 编辑:我想说的是

  • 问题内容: 我一直在尝试找出如何在两个特殊字符’和’之间提取字符串的一部分,我一直在研究regex,但坦率地说,我无法理解它 。Java代码示例: 我想拔出89 通常,我只想知道如何在两个特定字符之间提取字符串的一部分。 另外,很高兴知道如何从一开始就将字符串的一部分提取到特定字符,例如21。 问题答案: 试试这个正则表达式: 作为Java字符串文字,您将必须编写如下: 这是一个更完整的示例,演示

  • 我正在创建一个程序,它可以决定用户的移动方向是否是顺时针方向(N,E,S,W)。 例如,我有变量: UsersDirection不是顺时针方向,因为它必须是“sw”,就像在correctdirection。我不知道如何比较这两个字符串,我甚至不知道如何开始。

  • 在 C# 中,可以使用字符串作为字符数组,但更常见的做法是使用 string 关键字来声明一个字符串变量。该 string 关键字是 System.String 类的别名。 创建一个 String 对象 可以使用下列方法之一字符串对象: 通过指定一个字符串给一个字符串变量 通过使用 String 类的构造函数 通过使用字符串连接运算符(+) 通过检索属性或调用返回一个字符串的方法 通过调用格式化方

  • 8.6. 基于 dictionary 的字符串格式化 为什么学习 locals 和 globals? 因为接下来就可以学习关于基于 dictionary 的字符串格式化。或许您还能记起, 字符串格式化 提供了一种将值插入字符串中的一种便捷的方法。值被列在一个 tuple 中, 按照顺序插入到字符串中每个格式化标记所在的位置上。尽管这种做法效率高,但还不是最容易阅读的代码,特别是当插入多个值的时候。

  • 问题内容: 我在管道脚本中的语法有些麻烦。 我正在尝试捕获最后一个斜杠“/”之后和最后一个句号“”之前的所有内容。在此字符串git@github.com:project / access-server-pd.git(access-server-pd) 这是我下面要设置的方式 我目前在管道脚本上设置了三引号: 但是我收到一个关于“”的意外令牌。错误。我该怎么写才能使它正常工作? 更新:此命令可以解决