2017-03-29 7 views
0

これを達成する方法はありますか?文字列を使用するときに特定の文字列を破棄するfind()

文字列He said: <p>He<i>ll</i>o how are you?には、これらのHTMLタグがプレーンテキストとして含まれています。メソッドfind()は、検索された文字列を含むインデックス(位置)を返します。おそらくfind()の正規表現バージョンがありますか?<>(またはそのネガティブな先読み)で囲まれたタグを検索するための正規表現としてこの<[^<]+?>を入力することができるので、無視して単語Helloを探しますが、元の文字列ですか?例えば

文字列= He said: <p>He<i>ll</i>o how are you?

機能はfoo(String, "<[^<]+?>", "Hello")

foo(search in this string, exclude characters matching this regex, look for thisのようになり..and見返りに元の文字列中の単語のHelloの位置として 13を得ることができますか?

+0

正規表現ではこれをサポートしていません。最初にhtmlタグを取り除いて結果の平面文字列を処理する必要があります –

+0

本当にここで何をしたいですか? 「こんにちは」という言葉からタグが削除されましたか? – Jan

+0

私はそこにタグを残しておきたいが、そこではHelloを検索することができ、それらのタグによって妨げられている。 –

答えて

0

re.search('(?:<[^<]+?>)*'.join('Hello'), 'He said: <p>He<i>ll</i>o how are you?').start()は12(13nth文字)を返します。

あなたはHelloが文字列であることを特定していない場合、あなたはstartを呼び出す前にsearchあれば戻りNoneをチェックする必要があります。

関連する問題