2017-09-11 2 views
0

私には必要のないhtml属性があるニュースがあるテキストがあります。どのように私は、このような正規表現をテキストから削除する

IMG幅= "750" altが= "4.jg" C = "/アンロード/ medialiy/DF6/4.jg" 高さ= "499" タイトル=としてルビーでフレーズを削除することができます4.jg "

IMG幅= "770" ALT = "5.jg" C = "/アンロード/ medialiy/ty6/5.jg" 高さ= "499" タイトル= 5.jg"

だから、news.sub('/img*jg"/, '')のような正規表現が必要です。それは動作しません。あなたがこれを行うことができ、あなたの特定のケースで

+0

_ "私はHTML属性を持ってニュースをテキスト" _ - それは何を意味するのでしょうか? HTMLまたはHTMLを含むテキストがありますか?山括弧が欠けているのはなぜですか?あなたの実際の入力はどのように見えますか(つまり 'news')とあなたの期待される出力は何ですか? – Stefan

答えて

0

element = '<img width="750" alt="4.jg" c="/unload/medialiy/df6/4.jg" height="499" title="4.jg">' 

puts element.gsub(/(width|alt)=\"[^ ]+\" ?/, '') 

ます。また、この正規表現hereで遊ぶことができます。

しかし、より堅牢なソリューションが必要な場合は、Nokogiri gemをご覧ください。 Thisご質問がお手伝いできます。

1

私が使用します - 任意の量

img .*\.jg" 

test

あなたが正規表現で言いたい場合は、「任意の量の任意のシンボルを」、.*ドットを使用するには、任意のシンボル、星を意味します。

ただし、角かっこは含めないでください。

<img .*\.jg"> 

属性の順序が変更される場合はどうなりますか?それから、あなたはimgタグに一致しません。私たちは本当にそれに.jg"部分文字列を持つimgタグが必要です。

<img [^>]*\.jg"[^>]*> 

test

+0

_ "ドット"は任意のシンボルを意味します "_ - あなたは' .jg'を望んでいますか? ;-) – Stefan

+0

ああ!どのくらい私の愚かなバックスラッシュを省略する!実際には、それは「。?」の代わりになりました。それは正しい正規表現だったので、テストは合格しましたが、説明には役に立たない、ありがとう! – Gangnus

関連する問題