2

とても単純かもしれませんが、ここで苦労しています...文字列の長さが7桁または9桁の場合に一致する必要がある繰り返し桁数の正規表現が必要です

4

3 に答える 3

2

どうですか:

\b\d{7}(?:\d\d)?\b

単語の境界は、7桁または9桁しかないことを保証します

于 2012-12-04T12:20:31.753 に答える
2

試してみてください(\d{7}|\d{9})。この方法では、8 桁の長さの文字列と一致しません。

編集 I: アレックス (コメントを参照) によって提案されたように\d{7}(\d{2})?、パフォーマンスがさらに向上する可能性があります。

編集 II: わかりました、質問を読み直して、問題を解決しました。\D\d{7}(\d{2})?\Dするべきです。また、8 桁の数字の 7 桁にも一致しません。

編集 III: または、M42 によって提案された単語境界を使用します。

于 2012-12-04T12:13:22.373 に答える
1

これを試してみてください。これはC#用です。しかし、それは他の言語でも機能するはずです。

(\d{7})|(\d{9})

これがどのように機能するかです:

| | またはを意味します

{7} は 7 回一致することを意味します

\d は任意の数字を表します

于 2012-12-04T12:13:32.287 に答える