£文字で進まない数字を探したいです。文字列があるとします:
「2012 年の国内総生産は 1,270 億ポンドでした」
2012年のみを返したいです。
試してみましたが、これは文字を[^$][0-9]*
無視するだけです。$
数字で始まり数字で終わる単語全体を一致させようとしましたが、に\b[0-9]*\b
のみ\b
適用されます[0-9a-zA-Z]
他に提案はありますか?
動作するオプションの 1 つ ( http://gskinner.com/RegExrを使用してテスト済み) は次のとおりです。
(?<![£0-9])[0-9]+
これは、負の後読みを使用して £ を除外します。0 ~ 9 の追加の除外は、「2012」に加えて上記の「27」を検出しないようにするためです。
文字列の前にスペースを付けて、「数字で始まる単語のデジタル接頭辞」を意味する正規表現を検索できます。\s[0-9]+
これにより、$、£、または数字以外のすべてで始まるすべての単語が除外されます。
これは、それらを試すことができる優れたツールです。これは、あなたが尋ねたことを行うサンプル方法です http://regex101.com/r/iH9uS8
これは私のために働く:
(?:^|\\s)(\\d+)(?:\\s|$)