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%)
为日期
您将需要在这里使用正则表达式:
'('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)