0

だから私は、altタグ、タイトルタグ、リンクテキストなどのさまざまな場所に大文字の文字列を持つこれらすべてのhtmlドキュメントを持っています.

<li><a title='BUY FOOD' href="http://www.example.com/food.html'>BUY FOOD</a></li>

私がする必要があるのは、最初の文字を除くすべての文字を小文字に置き換えることです。そのようです:

<li><a title='Buy Food' href="http://www.example.com/food.html'>Buy Food</a></li>

Pythonまたは何らかの形式の正規表現でこれを行うにはどうすればよいですか。私の編集者 Coda がこのようなことを行うことができると言われました。しかし、このようなことを行う方法に関するドキュメントが見つからないようです。

4

3 に答える 3

0

BeautifulSoupのような HTML パーサーが必要だと思います。残りは詳細になります。

于 2011-08-01T23:14:53.157 に答える
0

完全自動編集が適切ではない注目すべき例外があるかもしれませんが、正規表現対応のエディターを使用している場合は、/[AZ][AZ]+/ を検索して手動で置き換えることができます。

于 2011-08-01T23:16:45.923 に答える
0

Beautiful Soup を使用して HTML をタグのツリーに解析し、Python コードを記述してタグのツリーと本文テキストをたどり、タイトル ケースに変更することをお勧めします。正規表現を使用してそれを行うこともできますが、Python にはそれを行う組み込みの文字列メソッドがあります。

"BUY FOOD".title()  # returns "Buy Food"

すべて大文字の文字列に一致するパターンが必要な場合は、次を使用することをお勧めします。"[^a-z]*[A-Z][^a-z]*"

これは、「小文字を除く 0 個以上の文字、次に単一の大文字、次に小文字以外の 0 個以上の文字に一致する」ことを意味します。

このパターンは、たとえば「BUY 99 BEERS」と正しく一致します。"so very quiet" には大文字が 1 文字も含まれていないため、一致しません。

PS実際に関数を渡すことができるre.sub()ので、必要に応じて非常に強力な処理を実行できる可能性があります。あなたの場合、Pythonの.title()メソッドでそれができると思いますが、関数の受け渡しに関する情報とともに投稿した別の回答を次に示します。

文字列内の各単語の最初の文字を大文字にする方法(Python)?

于 2011-08-02T01:58:27.397 に答える