此术语的正则表达式

时间:2012-12-17 20:36:57

标签: php regex

从以下行提取1944的正则表达式是什么:

vol. 9, no. 3, pp. 185-197, 1944
1944年基本上是我试图提取的出版年份。我在1900年到2010年之间变化。

6 个答案:

答案 0 :(得分:2)

如果它始终是字符串中的最后一部分,则可以使用$表示,并且年份应始终为4位数字,因此您使用d{4}。 因此,你想要的正则表达式应该是:

\d{4}$

如果您想测试正则表达式,那么这里有一个非常简洁的工具:http://pagecolumn.com/tool/pregtest.htm,它还有右侧规定的规则。 :)

答案 1 :(得分:1)

你需要一个更好的约束,但也许这个:

,\s+(19\d\d|200\d|2010)

你知道具体的引用方式吗? (MLA,APA等)

答案 2 :(得分:1)

假设年份永远是最后一年:

\d{4}$

答案 3 :(得分:1)

匹配1900年至2010年之间的任何数字:

(19\d\d|200\d|2010)

如果日期始终是该行的最后一项:

(19\d\d|200\d|2010)$

如果之后可能有某些内容,但它总是在页面引用后立即显示:

pp?\.\s*[-\d]+,\s*(19\d\d|200\d|2010)

注意:在设计正则表达式时,通常非常重要的是要有大量要匹配的项目,以便您可以查看可能的输入中可能存在的变化。一个测试项本身通常不足以设计防弹正则表达式。

答案 4 :(得分:-1)

尝试一起捕捉4位数字:

\d{4}

答案 5 :(得分:-1)

好的,我用它来完成它的工作:

\b[1-9][0-9]{3}\b

这匹配1000到1999之间的数字,我知道'年'之前的数字不会那么大