我有这个字符串:
ÜmraniyeTapuMüdürlüğündeveÜmraniyeBelediyesiİmarMüdürlüğünde 20.08.2014 onay tarih ve254sayılımimariprojesinicelenmiştir。
我正在获取日期时间:像这样:
t = DateTime.Parse(Regex.Match(mimaristring, @"\d(\d+)[-.\/](\d+)[-.\/](\d+)").Value);
我试图像这样得到254:
num = Regex.Match(mimaristring, @"\d+").Value;
但是我得到20而不是254,我怎样才能跳过日期时间并得到254?
注意:有时,我有123/456
之类的数字,而不只是254
,我也需要获取它们。
答案 0 :(得分:2)
要使整数不在点+数字内,您需要使用外观:
@"(?<!\d\.)\b\d+(?:/\d+)?\b(?!\.\d)"
模式说明:
(?<!\d\.)
- 如果当前位置之前有digit
+ .
则不匹配\b
- 字边界\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\.)\b\d+(?:/\d+)?\b(?!\.\d)";
Console.WriteLine(Regex.Match(s, pat).Value);