前提・実現したいこと
Python3系で正規表現をしたいのですが
1つの変数に3つの単語があり、searchを用いて3つの単語から
2単語を抽出するコードを1つの正規表現で実現したいです
以下のソースコードを組みましたが
最後の「焼き魚」という文字しか抽出されなく困っております
発生している問題・エラーメッセージ
- ▼期待値 焼肉 焼き魚 ▼発生している問題/実行結果 焼き魚
実行結果
課題④-2
焼き魚
該当のソースコード
## 課題④-2 import re foods = "焼肉定食 焼き魚定食 野菜炒め定食" answer = re.search(r"[焼肉]+[焼き魚]+", foods).group(0) print("課題④-2") print(answer) print("")
試したこと
search内にあるものを
and や or で区切ってもNGでした
補足情報(FW/ツールのバージョンなど)
テキストエディタ : sublimetext
Python version : 3.7.3
ここにより詳細な情報を記載してください。
どのような実行結果になることを期待しているのでしょうか。
期待している実行結果は下記になります
----Console----
課題④-2
焼肉 焼き魚
仮に両方、あるいは片方マッチしなかった場合はどうなるんですか?
マッチしない場合を実行してみたら下記のエラーが吐かれました
answer2 = re.search(r"[うう]+[うう]+", foods).group(0)
AttributeError: 'NoneType' object has no attribute 'group'
ちょっと言い方が上手くなかったようです。foods = "トンカツ定食 B定食 野菜炒め定食" みたいなときはどのような実行結果になって欲しいのですか?
foods = "トンカツ定食 B定食 野菜炒め定食" の場合だと
----Console----
トンカツ 野菜炒め
--------------------
上記のように3つの定食から
2つほど好きな文字列を抽出/出力したいです!
※トンカツと定食という文字列は任意になります
好きな文字列というのはどのように決定されるのでしょう。
何と言うか元も子も無い話になってしまいますが、好きな文字列を人為的に前以て決めるのならば、単に print('トンカツ 野菜炒め') ではいけない理由がいまいち分かりません。
ややこしくなってしまい申し訳ありません
結論、print('トンカツ 野菜炒め') でもよろしいのですが
正規表現の宿題 (慣れるための課題) として、変数foodsの中にある
foods = ["焼肉定食", "焼き魚定食", "野菜炒め定食"]
から任意の文字列2つを抽出するという経緯でした
回答2件
あなたの回答
tips
プレビュー