c#:查找字符串中括号内的日期

本文关键字:日期 查找 字符串 | 更新日期: 2023-09-27 18:08:09

你好!

我正试图找到一个工作围绕工作与字符串在c#

问题陈述

文本输入为

W.E.Power Dividend Total Return (Net 2%) vs. S&P 500 Total Return Index (11/30/1989 - 09/30/2009)

,我需要将字符串中的日期替换为我的日期11/05/1992-10/06/2013

目前

get_pub_data为输入文本

string year_date = get_pub_data.Split(new char[] { '(', ')' })[1];

所以我用括号来获取内容。但是,我在一行中遇到了多个括号,因此上面的代码失败了。因为,它取遇到的第一个括号并用日期替换括号内容,得到如下结果

错误输出

W.E. Power Dividend Total Return (12/31/99 - 12/31/13) vs. S&P 500 Total Return Index (11/30/1989 - 09/30/2009)

不替换(date),而是替换(Net 2%)为日期

c#:查找字符串中括号内的日期

您将需要在这里使用正则表达式:

'('d{2}/'d{2}/'d{4}'s-'s'd{2}/'d{2}/'d{4}')

这将返回以下内容:

(11/30/1989 - 09/30/2009)

如果只查找日期,使用

'd{2}/'d{2}/'d{4}

它将返回你:

11/30/1989

09/30/2009
c#代码示例:
string str = "W.E.Power Dividend Total Return (Net 2%) vs. S&P 500 Total Return Index (11/30/1989 - 09/30/2009)";
string pattern = @"'('d{2}/'d{2}/'d{4}'s-'s'd{2}/'d{2}/'d{4}')";
string replaced = Regex.Replace(str, pattern, @"(01'01'2013 - 01'01'2014)"); // W.E.Power Dividend Total Return (Net 2%) vs. S&P 500 Total Return Index (01'01'2013 - 01'01'2014)