我有这个字符串:
Ü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
,我也需要得到它们。
要获得不在点+数字内的整数,您需要使用遍历:
@"(?<!d.)bd+(?:/d+)?b(?!.d)"
查看这个正则表达式演示
模式解释:
-
(?<!d.)
-如果当前位置前有digit
+.
,则不匹配 -
b
- a字边界 -
d+(?:/d+)?
- 1+位可选后跟/
和1+位 -
b
-尾字边界 -
(?!.d)
-如果有一个点后跟一个数字,则匹配失败。
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.)bd+(?:/d+)?b(?!.d)";
Console.WriteLine(Regex.Match(s, pat).Value);