UdemyPython学習【365日チャレンジ!】286日目のマスターU(@Udemy11)です。MacのOSをアップデートしたらセキュリティーソフトのE-SETが未対応だったので、あたふたしています。OSの大きなアップデートの際は、インストールしているソフトがOSに対応しているかどうかを確認する必要があるので、注意しないとと思っているにも関わらず、ついついアップデートしてしまうんですよね。毎回失敗しているので、次は注意しようと思うのですが、全く学習していないようです。Pycharmは使えるので一安心。Python学習には支障がないので、今日もPython学習を始めましょう。昨日は、match()を使って、正規表現の基本的な記述方法を学習しました。?や*や+といった正規表現で、直前の文字の繰り返し回数を指定してマッチする文字列を抽出しました。{}や[]を使って範囲を指定したり、抽出する種類を指定したりすることもできました。その他の基本的な正規表現については、昨日の記事をごらんください。Udemyのセールを活用してほしかったあのスキルを手に入れよう!【非公式】2020.11.22【re】正規表現の基本的な記述方法https://udemyfun.com/python-re-matchPython学習【365日チャレンジ!】285日目のマスターU(@Udemy11)です。今年もブラックフライデーに合わせたUdemyのブラックフライデーセールが始まっています。普段から時折実施されるセールでもお得にUdemyの講座を購入できますが、ブラックフライデーセールは特別です。酒井さんの講座を受講しながらPython学習365日チャレンジを継続しているのですが、私も具体的な実践に役立ちそうなPython講座をいくつか購入しておきました。Udemyの講座は受講期限がないので、セールの時に魅力的な講座を購入しておいて、後からゆっくりと受講す...今日は、match()とgroup()を使って、規則のある長い文字列から必要な情報を取り出す方法を学習します。AWSCloudFormationAWSCloudFormationじゃなくてもいいのですが、酒井さんの講座で使われていたので、他の適切な文字列をどのように見つけていいかわからなかったため、講座と同じようにAWSCloudFormationの文字列を活用してみました。こちらのページの中ほどにある【StackIdarn:aws:cloudformation:us-east-2:123456789012:stack/mystack-mynestedstack-sggfrhxhum7w/f449b250-b969-11e0-a185-5081d0136786】を活用します。CloudFormationhttps://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/resource-import-nested-stacks.htmlリソースインポート機能を使用して、既存のスタックを親スタック内にネスト化します。matchとgroup上記のStackIdの文字列がcloudformationのフォーマットになっているかどうかを確認するコードを書いていきます。s)print(m)print(m.group())sにAWSから取得した文字列を代入して、8行目のre.matchで、StackIdのフォーマットにマッチした正規表現で文字列を抽出し、9行目でマッチオブジェクト、10行目で抽出した文字列を出力しています。match='arn:aws:cloudformation:us-east-2:123456789012:sta>arn:aws:cloudformation:us-east-2:123456789012:stack/mystack-mynestedstack-sggfrhxhum7w/f449b250-b969-11e0-a185-5081d01367861行目の出力はマッチオブジェクト、2行目はsに代入したStackIdがそのまま出力されています。name正規表現を使って抽出する部分に名前を指定して、指定した名前で値を取得することもできます。s)print(m.group('region'))print(m.group('account_id'))print(m.group('stack_id'))出力結果us-east-2123456789012mystack-mynestedstack-sggfrhxhum7w正規表現で指定している部分を(?P<name>正規表現の部分)とすることで、group('name')で取り出すことができるようになります。出力結果は順番に指定したregion、account_id、stack_idが出力されていますが、こちらはユーザーによって値が変わってきます。条件分岐を使う具体的な使い方の一例は、データベースからStackIdのフォーマットを取得して、if分での条件分岐を使い、データベースの値がマッチすれば、次の処理に進み、マッチしていない場合はエクセプションでエラーを表示するという使い方ができます。nextが出力されています。matchが出力されます。まとめわかりやすく説明するために、固定された文字列を使ったり、かんたんなprint出力を使ったりしていますが、実際に使う場面は、データベースに保存されているデータと入力されたデータを正規表現で比較してなにかの処理をさせたり、マッチしなければエラーを起こさせたりする使い方があるのかなと思います。いつも感じるのですが、全く知識がない状態で学習したことは、そのまま実践で使われるのかと思っちゃいますが、あくまでかんたんにそれぞれの機能を説明するために紹介されているだけですので、実践は今回学習したような使い方はないのかもしれません。いえ、基本を抑えておくことは大変重要なので、これからも頑張って継続していきたいと思います。Udemyがセールをしているかどうかは、こちら...【Python】模範的な対話アプリケーションの構造解説(MVCモデル)Python学習【365日チャレンジ!】109日目のマスターU(@Udemy11)です。なにげに玄関を眺めていると、アシナガバチがポストに入って...【Python】マルチスレッドとマルチプロセスについてPython学習【365日チャレンジ!】203日目のマスターU(@Udemy11)です。9月になって少しは過ごしやすくなるのかと思いきや、まだま...【Python】簡単な対話アプリケーションの作成Vol.7Python学習【365日チャレンジ!】108日目のマスターU(@Udemy11)です。ホットケーキミックスが品薄になっていたらしですが、大量の...【Python】インフラの仮想環境を構築するイメージを理解しようPython学習【365日チャレンジ!】239日目のマスターU(@Udemy11)です。Keysのキー割り当てにハマった話Googleスプレッドシートの使い方講座Anacondaのアンインストールからの再インストールrequestsを使って仮想通貨のデータを取得Python学習【365日チャレンジ】を振り返ってみます。(2)Amazonのアソシエイトとして、当メディアは適格販売により収入を得ています。