gpt4 book ai didi

c# - 正则表达式:在不同的字符串变体中查找一个字符串

转载 作者:行者123 更新时间:2023-12-04 08:45:51 33 4
gpt4 key购买 nike

我需要找到一个正则表达式来掌握

81.03


以下字符串变体中的部分(不同,但始终具有 XX.XX 结构):

Projects/75100/75120/75124/AR1/75124_AR1_HM2_81.03-testing-b405.tgz


Projects/75100/75130/75138/LM1/75138_LM1_HM2_81.03.tgz


我想出了:
var regex = new Regex("(.*_)(.*?)-");
但这仅匹配第一个示例字符串,而
var regex = new Regex("(.*_)(.*?)(.*\.)");
只匹配第二个字符串。
文件的路径和“-testing...”后缀一样不断变化。
有什么想法可以指出我正确的方向吗?

最佳答案

您可以使用

var result = Regex.Match(text, @".*_(\d+\.\d+)")?.Groups[1].Value;
或者,如果字符串可以有更多的点+数字部分:
var result = Regex.Match(text, @".*_(\d+(?:\.\d+)+)")?.Groups[1].Value;
regex demo .
通常,正则表达式会在最后一个 _ 之后提取点分隔的数字块。 .
详情
  • .* - 除换行符以外的任何 0 个或更多字符,尽可能多
  • _ - 一个 _字符
  • (\d+(?:\.\d+)+) - 第 1 组:一个或多个数字,后跟一个或多个点,后跟一个或多个数字
  • \d+\.\d+ - 一位或多位数字,.和一位或多位数字。
  • 关于c# - 正则表达式:在不同的字符串变体中查找一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64334418/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com