質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

1回答

702閲覧

丁度(ぴったり)の桁数の文字にマッチさせたい

hiroyuki828

総合スコア22

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2022/08/31 10:05

前提

6桁の数字にだけマッチさせる正規表現を作りたいのですが
7桁の数字の6桁部分にもマッチしてしまうため7桁以上の数字の除外したいのですが
うまく表現する方法が見つからずご質問させていただきました。

実現したいこと

データのイメージ

07000000000 ID765847→858565 338844→ID590083 87658765 0120999999

抽出したいデータ

765847 858565 338844 590083

07000000000 や 87658765 や0120999999 は除外したい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/08/31 11:12

環境によって正規表現の書き方や機能が違うので、使用している言語やエディタなどを書いた方が良いと思います。pythonの場合、数字が6個 \d{6}、その手前に数字がこない (?<!\d)、その後に数字がこない (?!\d) であれば以下のようなイメージです(動作は未チェック)。 re.findall(r'(?<!\d)\d{6}(?!\d)', txt_line)
guest

回答1

0

ベストアンサー

Perl拡張の正規表現が使えるなら、後読み先読みを使って、
(?<=\D|^)\d{6}(?=\D|$)

Perl拡張正規表現が使えない場合は、数字列を全部抽出してから長さを調べて、6以外を除く。

投稿2022/08/31 11:12

otn

総合スコア86281

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問