首页 > 解决方案 > 正则表达式获取第 n 个值,用斜杠分隔

问题描述

我有一个通用的正则表达式代码,它使用Groups[1]值来提取结果。sn=(.*?)\.只需给出一个模式即可轻松提取 SN 和 Ref 。但是例如很难获得,PKSC并且V928. 我必须使用Groups[1],因为使用此应用程序的用户可以选择自己的值来显示。它可以是NC339PKXC

//var source = "SN=1395939213.#variable/OGT84/PKXC/Undetermined.Thank You@{customer}"
//sometimes like this
var source = "SN=8029758034.Ref=BFO7Y95B3KN5#resolved/NC339/V928/ClearenceBBF.Brief@{supervisor}/verified"

var value = Regex.Match(source, pattern, RegexOptions.IgnoreCase | RegexOptions.Singleline).Groups[1].Value

标签: c#regex

解决方案


您可以使用

^(?:[^/]*/){2}([^/]+)

请参阅正则表达式演示

细节

  • ^- 字符串的开头
  • (?:[^/]*/){2}- 出现两次以外的任何字符/,然后是/
  • ([^/]+)- 第 1 组:除 . 之外的一个或多个字符/

推荐阅读