次の行から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)
注: 正規表現を設計するときは、通常、テストできる一致項目を多数用意することが非常に重要です。これにより、可能な入力にどのようなバリエーションがあるかを確認できます。一般に、防弾正規表現を設計するには、1 つのテスト項目だけでは十分ではありません。
さて、私はこれを使用してそれを動作させました:
\b[1-9][0-9]{3}\b
これは1000から1999までの数値に一致し、「年」より前の数値はそれほど大きくならないことを私は知っています
4桁を一緒にキャッチしてみてください:
\d{4}