2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

正規表現で「数字のみ以外の2文字以上の文字列」を抽出する

Posted at

タイトルのことをやろうとしたら、同じことをやってる記事をWeb上で探せなかったのでメモ

【1月2日】や【5件】みたいなものを探したいけど、【123】みたいなものは無視したいときがあった。すなわち、【】の中の文字列(記号は除く)を取りたいけど、中身が数字だけだと困る、また、1文字だけだと困る、というピンポイントなことを考える機会があった。

まあまあ悩んで、下のような正規表現パターンを作ってやればいいという結論。(Pythonでかいてます)

import re

pat = re.compile(r'【\D\w+】|【\d\w*\D\w*】')

| の左側は、【】内の1文字目が数字以外の文字で、2文字目以降は、数字or文字の1文字以上を表す。
これだけだと1文字目が数字の【5件】などの場合に対応できないので、| の右側で、1文字目が数字だった場合のパターンを作っている。1文字目数字で、以降のどこかで数字以外の文字が入るが、それ以外は0字以上の数字or文字、というパターン。

使い所少ない&もっと良い方法はありそうだけど、とりあえずこれで問題なさそうなので書き留めておく。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?