2

文字列から正確に 5 桁の数字を抽出したい。

私が試したら

\d{5}

これは"12345"orに対して機能しますが、望ましくない文字列"a12345a"にも一致します。"12345""123456"

私は試すことができます

\d{5}\D

ただし、文字列"12345a"は「a12345a」で一致します。番号だけを取得する方法はありますか?

4

3 に答える 3

2

文字で囲まれている場合でも、正確に 5 桁の数字と一致させるには、正規表現を使用します。

(?<!\d)\d{5}(?!\d)

\d{5}これは、数字が先行 ( (?<!\d)) も後続 ( ) もない5 桁 ( ) に一致(?!\d)します。

単語境界 ( ) は、 では一致\bできないため、ここでは機能しません。12345a12345a

regex101.comでデモをご覧ください。

于 2013-05-27T20:04:28.933 に答える
1

(\d{5})[^a-zA-Z]が正しい方法です。

(\d{5})キャプチャは5つの数字であり[^a-zA-Z]、次の文字は文字にすることはできません.

編集: わかりやすくするために:\b(\d{5})\b境界で囲まれた 5 桁の数字が必要な場合に使用されます (' , . "もちろんスペースのようなトークン)。

于 2013-05-27T19:50:54.583 に答える
0
/\d{5}[^\d]/

これは、数字以外の文字が続く 5 桁のシーケンスに一致します。

于 2013-05-27T20:20:23.093 に答える