0

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

vol. 9, no. 3, pp. 185-197, 1944

1944 年基本上是我试图提取的出版年。我在 1900 年和 2010 年之间变化。

4

6 回答 6

2

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

\d{4}$

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

于 2012-12-17T20:41:28.687 回答
1

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

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

例如,您知道特定的引用风格吗?(MLA、APA 等)

于 2012-12-17T20:40:15.333 回答
1

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

\d{4}$
于 2012-12-17T20:40:24.840 回答
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)

注意:在设计正则表达式时,选择大量匹配项以供您测试通常非常重要,这样您就可以看到可能的输入中可能存在哪些变化。一个测试项目本身不足以设计一个防弹的正则表达式。

于 2012-12-17T20:47:32.897 回答
-1

尝试同时捕捉 4 个数字:

\d{4}
于 2012-12-17T20:38:23.807 回答
-1

好的,我使用它来工作:

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

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

于 2012-12-17T22:19:03.383 回答