查找正则表达式中的最后一组数字

时间:2014-11-26 04:55:51

标签: regex

我想确定最后一句话中的年份,如何在Regex中找到?

代表:

string =一些文本1999年的一些文本1986年的一些文本;

string = Regex.Replace(string, @"(\b(1[7-9]|2[0-9])\d{2}\b)", "<Year>$1</Year>");

我的例外输出:

some of texts 1999 some of texts <year>1986</year>

注意:年份不止一次 谢谢,萨兰

2 个答案:

答案 0 :(得分:2)

或使用此模式

(.*)(\b(?:1[7-9]|2[0-9])\d{2}\b)  

并替换w / $1<Year>$2</Year>
Demo

答案 1 :(得分:0)

\b(\d+)\b(?=[^\d]*$)

\b((?:1[7-9]|2[0-9])\d{2})\b(?=[^\d]*$)

试试这个。<year>$1</year>。见。演示。

http://regex101.com/r/oE6jJ1/20

编辑

\b((?:1[7-9]|2[0-9])\d{2})\b(?!.*\b((?:1[7-9]|2[0-9])\d{2})\b)

如果前面有数字,请使用此项。参见演示。

http://regex101.com/r/oE6jJ1/21