4

UltraEdit正規表現(perl)を使用して、次のテキストを一連のhtmlファイル内の他のテキストに置き換えたいと思います。

<style type="text/css">

#some-id{}

.some-class{}

//many other css styles follow

</style>

使ってみまし<style type="text/css">.*</style>たが、もちろん、ドットは改行以外の文字と一致するので、何も一致しません。改行も一致させたいのですが、改行はまたはのどちら\r\n\nです。

正規表現はどのように見えるべきですか?

みなさん、ありがとうございました。

4

2 に答える 2

6

通常、ドット.は改行以外のすべての文字に一致します。s 正規表現の修飾子を使用して、ドットを改行を含むすべての文字に一致させます。

于 2010-05-20T09:29:14.517 に答える
5

UltraEditでは(?s)、ドットを改行に一致させるために正規表現の前に追加する必要があります。

つまり、

(?s)<style type="text/css">.*?</style>

また、数量詞をレイジー(.*?)にしました。そうしないと、ファイル全体の最初<style>から最後まですべてが一致するためです。</style>

また、正規表現ではHTMLを確実に解析できないため、これは不安定な解決策であることに注意してください。UltraEditでは、これですべてです。スクリプト言語とパーサーの方が優れていますが、それがあなたのケースで機能するのであれば、すばらしいでしょう。必要以上に(または少なく)一致しないように注意してください(考えてください//comment containing a </style> tag)。

于 2010-05-20T09:34:16.720 に答える