他在那儿!
我正在尝试找到一个解决方案来处理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%)
答案 0 :(得分:0)
你想在这里使用正则表达式:
\(\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)