2017-02-01 4 views
1

私はPythonの新機能です。私はfind関数が文字列pと部分文字列sを取り、sがsに現れるインデックスを返すことを理解しています。私は"find"関数でワイルドカードメソッドを実装する方法はありますか?

p = 'abc' 
text = 'aaaabbaac' 
text.find(p) 

のようなものを持っていた場合でも、私がB、およびまだ代わりに-1を返すので、これはAとCの試合でのインデックスを返すようにワイルドカードを設定することを可能にする方法を記述することは可能でしょうか?

私はこのメソッドを2つのメソッド、findメソッドと文字を受け取り、上記のことを行う "setwildcard"メソッドを持っています。デフォルトでは、ワイルドカードはNoneに設定されています。

+4

いいえ正規表現と 're.findall()'を使用してください。 – DyZ

+0

どうすればよいか分かりません。あなたは説明してください – User

+0

"正規表現を使用する"方法は広すぎます。ドキュメントを見て、自分で試してみてください。モジュールはPythonで 're'と呼ばれ、標準ライブラリの一部です。 –

答えて

0

compile正規表現パターンを正規表現オブジェクトに含めることができます。正規表現オブジェクトは、match()search()メソッドを使用して一致させるために使用できます。

import re 
reObj2 = re.compile(pattern) 
reObj2.search(s) 

re.matchは()は、文字列の先頭にマッチし、各ラインのない で始まります。正規 発現パターンはマッチを生成し、対応する するMatchObjectインスタンスを返す最初の場所を探している文字列を介して

re.search()スキャン。

また、stringのpatternの重複しない一致をすべて返す場合は、re.findall()を使用できます。

reをご覧ください。

これが役に立ちます。

関連する問題