0
0

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 3 years have passed since last update.

【IQ Bot】正規表現を使ったカスタムロジックの備忘録

Last updated at Posted at 2020-12-22

IQ Botのカスタムロジックで正規表現を使うケースがぼちぼち出てきました。

そんなわけで、仕事で使った正規表現のカスタムロジックを備忘がわりにメモっておきます。

(体系立ててまとめられれば一番いいのですが、ないよりマシということで。。。)

##英語の大文字と数字だけを取り出したいとき

数字と英語の大文字の組み合わせでできた申込番号を取り出すときに使いました。

英語の大文字と数字だけを取り出したいとき
import re
field_value = re.sub(r"[^0-9A-Z]","",field_value)

ちょこっとコード解説をすると、正規表現の[0-9]は数字、[A-Z]は英語の大文字を表します。
「数字と英語の大文字」は[0-9A-Z]のように表現します。

で、コード例についている^はその否定。
つまり、[^0-9A-Z]は「数字でも英語の大文字でもない文字」ですね。

"[^0-9A-Z]"の前についているrは、「これは正規表現だよ」の合図です。

したがって、re.sub(r"[^0-9A-Z]","",field_value)は、

field_valueの中の数字でも英語の大文字でもない文字を空の文字列("")に置き換えてね」

イコール

field_valueの中の数字でも英語の大文字でもない文字を除外してね」

イコール

field_valueの中から数字と英語の大文字だけを取り出してね」

という意味になります。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?