gpt4 book ai didi

c# - 需要通过正则表达式从字符串中获取日期

转载 作者:太空宇宙 更新时间:2023-11-03 10:30:04 27 4
gpt4 key购买 nike

我有类似于下面的字符串:

string str1 = "test_20150505";
string str2 = "test_20150505_yts";
string str3 = "test_all";
string str4 = "test";

下面的正则表达式代码为字符串 str1 和字符串 str3 和字符串 str4 提取日期 (20150505)返回空,这也很好。

但是,我必须更改什么才能提取字符串 str2 的日期?

string d = Regex.Match(str1, "^(?:.*_)?([0-9]{8})(?:\\..*)?$").Groups[1].Value.ToString();

最佳答案

您可以只检查 8 位数字周围的可选 _:

(?<=_|\b)[0-9]{8}(?=_|\b)

参见 demo

var rx = new Regex(@"(?<=_|\b)[0-9]{8}(?=_|\b)");
var inputs = "test_20150505\n\test_20150505_yts\ntest_all\ntest";
var results = rx.Matches(inputs).OfType<Match>().Select(p => p.Value).ToList();

enter image description here

然后,您可以解析日期,例如:

DateTime datetime;
DateTime.TryParseExact(results[0], "yyyyMMdd", new System.Globalization.CultureInfo("en-us"), System.Globalization.DateTimeStyles.None, out datetime);

enter image description here

关于c# - 需要通过正则表达式从字符串中获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30502971/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com