【问题标题】:Return empty string if the capture group doesn't exist?如果捕获组不存在,则返回空字符串?
【发布时间】:2018-09-15 02:42:46
【问题描述】:

将正则表达式.*/(?<X>.*?(?<Rev>\#rev#.*?))\$(?<YM>\d{6})\.应用于以下字符串

/ABC$201808.csv /ABC#Rev#123$201808.csv

只匹配并捕获第二个字符串

/ABC#Rev#123$201808。有3组: ABC#Rev#123 (X) #Rev#123(修订版) 201808 (YM)

对于/ABC$201808.csv 的第一个字符串,我想捕获以下值(Rev 应该得到空字符串。

ABC(X) (修订版) 201808 (YM)

有可能吗?

【问题讨论】:

    标签: c# .net regex


    【解决方案1】:

    您在 <Rev> 分组后的正则表达式中缺少 ?。它应该是 .*/(?<X>.*?(?<Rev>\#rev#.*?)?)\$(?<YM>\d{6})\. 以便匹配两个字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-26
      • 2016-02-29
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      • 2021-11-30
      相关资源
      最近更新 更多