0

これは基本的な質問のように思えますが、かなりの量の検索を行いましたが、答えが見つかりませんでした。

数のセットがたくさんあるとします

9-9-9
999
123
1-23
12-3
444
55-5

私はすべての数値をegrepしたいのですが、これを行う1つの方法は、egrepを設定し、すべての可能性の正規表現を結合することです

egrep '[0-9][0-9[0-9]|[0-9][-][0-9][-][0-9]' などなど

私の正規表現で本質的に[0-9またはNULLまたは-]文字を言う方法はありますか? だから私はこの [0-9][0-9-NULL][0-9-NULL][0-9-NULL][0-9-NULL][0-9NULL] のような共用体なしで 1 つの正規表現を書くことができ、すべてのグループを返しますか?

したがって、検索されるグループは次のようになります。
最初の 0 ~ 9
- 2 番目の 0 ~ 9、-、NULL
- 3 番目の 0 ~ 9、-、NULL
- 4 番目の 0 ~ 9、-、NULL
- 5 番目の 0 ~ 9、-、 NULL
- 6 番目の 0-9、NULL

どんな助けでも大歓迎です。

4

5 に答える 5

1

のような正規表現を試してください

\d[-0-9]+

ダッシュまたは 0-9 を 1 回以上

編集

または、数字で始まり数字で終わる必要がある場合 (または 1 桁のみの場合)

\d[-0-9]*\d|\d

編集

または常に 3 桁

\d{3}|\d-\d{2}|\d{2}-d
于 2013-06-13T17:40:01.467 に答える
0

多分egrep '^[0-9]+(-[0-9]+){0,5}$'

  • いくつかの数字の後に、最大 5 つの (ハイフンと数字) のグループが続きます
  • ラインの両端に固定されています。
于 2013-06-13T17:53:49.140 に答える