从字符串中获取数字,其中也包括c#中的datetime

本文关键字:包括 中的 datetime 字符串 获取 数字 | 更新日期: 2023-09-27 18:03:00

我有这个字符串:

Ümraniye Tapu Müdürlüğünde ve Ümraniye Belediyesi İmar Müdürlüğünde20.08.2014 onay tarih ve 254 sayılı mimari projesi incelenmiuretir .

我得到datetime:像这样:

t = DateTime.Parse(Regex.Match(mimaristring, @"'d('d+)[-.'/]('d+)[-.'/]('d+)").Value);

我试着得到254这样:

num = Regex.Match(mimaristring, @"'d+").Value;

但是我得到的不是254,而是20。我怎样才能跳过日期时间而得到254?

注意:有时,我有123/456这样的数字,而不仅仅是254,我也需要得到它们。

从字符串中获取数字,其中也包括c#中的datetime

要获得不在点+数字内的整数,您需要使用遍历:

@"(?<!'d'.)'b'd+(?:/'d+)?'b(?!'.'d)"

查看这个正则表达式演示

模式解释:

  • (?<!'d'.) -如果当前位置前有digit + .,则不匹配
  • 'b - a字边界
  • 'd+(?:/'d+)? - 1+位可选后跟/和1+位
  • 'b -尾字边界
  • (?!'.'d) -如果有一个点后跟一个数字,则匹配失败。
c#演示:

var s = "Ümraniye Tapu Müdürlüğünde ve Ümraniye Belediyesi İmar Müdürlüğünde 20.08.2014 onay tarih ve 254 sayılı mimari projesi incelenmiştir.";
var pat = @"(?<!'d'.)'b'd+(?:/'d+)?'b(?!'.'d)";
Console.WriteLine(Regex.Match(s, pat).Value);