从以下行中提取 1944 的正则表达式是什么:
vol. 9, no. 3, pp. 185-197, 1944
1944 年基本上是我试图提取的出版年。我在 1900 年和 2010 年之间变化。
如果它始终是字符串中的最后一部分,您可以使用它们$
来表明这一点,并且年份应始终是一个 4 位数字,因此您可以使用d{4}
. 因此,您想要的正则表达式应为:
\d{4}$
如果你想测试你的正则表达式,这里有一个非常简洁的工具:http: //pagecolumn.com/tool/pregtest.htm,它的右侧也有规则。:)
你需要一个更好的约束,但也许是这样的:
,\s+(19\d\d|200\d|2010)
例如,您知道特定的引用风格吗?(MLA、APA 等)
假设这一年永远是最后一年:
\d{4}$
匹配 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 个数字:
\d{4}
好的,我使用它来工作:
\b[1-9][0-9]{3}\b
这匹配 1000 到 1999 之间的数字,我知道“年份”之前的数字不会那么大