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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

2回答

346閲覧

python 文字列の探し方

kakini

総合スコア42

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/03/27 12:32

環境はpython3.7.1をwindows7で使っています

例えばある本を探すために「日本の経済」と検索した時、下記の様な結果が出てきました

1.日本経済のマクロ分析 パズルを解く
2.誰も書けなかった日本の経済損失
3.日本の経済―歴史・現状・論点
4.日本経済の再構築
5.日本経済 低成長からの脱却
6.日本の経済統制: 戦時・戦後の経験と教訓
7.2019年版 日本の労働経済事情

この中で自分が欲しがっている文字列は「日本の経済」この順番に並んだ文字列です
それを↑の物から探していくと2番3番6番となりますが自分は7番も欲しいです
7番は「2019年版 日本の労働経済事情」となっていますが
労働の部分を省けば一応「日本の経済」この並び順に該当します
これが「2019年の労働経済事情 日本版」とかだったら7番は欲しくありませんが
「日・本・の・経・済」の5文字の1文字ずつをある文字列と見比べた時
途中に余分な文字が挟まっていても5文字の順序で並んでいれば取得する様なプログラムを作りたいです
極端な例だと
日よが本ういの34経おおお絵済
こんな検索結果が出てきてもそれを取得したいです

この様な文字列の取得方法に関する知識もしくは分かりやすく説明したサイト等があればそこを教えていただけないでしょうか

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

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

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

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

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

meg_

2020/03/27 12:37

正規表現(reモジュール)で調べてみてはどうでしょうか?
guest

回答2

0

正規表現を使います。

Python

1data = [ 2"1.日本経済のマクロ分析 パズルを解く", 3"2.誰も書けなかった日本の経済損失", 4"3.日本の経済―歴史・現状・論点", 5"4.日本経済の再構築", 6"5.日本経済 低成長からの脱却", 7"6.日本の経済統制: 戦時・戦後の経験と教訓", 8"7.2019年版 日本の労働経済事情", 9] 10 11import re 12 13for datum in data: 14 if re.search("日.*本.*の.*経.*済",datum): 15 print(datum)

投稿2020/03/27 12:42

otn

総合スコア85901

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

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

hayataka2049

2020/03/27 14:10 編集

「毎日チェロス一本とのりまきで生活すると経済的」とか「日曜日に本音では嫌だと思いつつ出勤するのも経験済み」とかにマッチしますね。 あ、要件それでいいのか・・・
Matsui_hero

2020/03/27 15:38

要件を訂正するのは野暮かもしれませんが、明らかに「日本」と「の」と「経済」に分けるのがベストだと思いますので、「日.*本」と「経.*済」の「.*」を取ったほうがいいと個人的には思います。
guest

0

'日', '本', 'の', '経', '済' 以外の文字をすべて削除して、 その結果の文字列に "日本の経"
が含まれているかをしらべるのは如何でしょう?

pp.py

python3

1 2

実行例;
イメージ説明

8 番目の入力例は、この方法ではヒットしません。
(正規表現 "日.*本.*の.*経.*済" でチェックした場合、これはヒットします)

投稿2020/03/29 03:42

katoy

総合スコア22324

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問