0

私はプラグインに取り組んでいます。HTMLファイルを解析します。私はそのような命名規則を持っています:

<!--$include="a.html" -->

また

<!--$include="a.html"-->

似ている

このパターン(サーバーサイドインクルードと同様)に従って、HTMLファイルを検索したいと思います。質問はそれです:

Find that pattern and get value (a.html at my example, it is variable)

次のようになります。

while(!notFinishedWholeFile){
    fileName = findPatternFunc(htmlFile)
    replaceFunc(fileName,something)
}

PS: Javaで正規表現を使用するか、別の方法で実装するか(使用するよう.indexOf()に)、どちらが優れているかわかりません。パフォーマンスによって正規表現がこの状況に適している場合は、それを使用したいと思います。

何か案は?

4

3 に答える 3

0

私はそのパターンを使用しました:

"<!--\\$include=\"(.+)(.)(html|htm)\"-->"
于 2013-02-18T20:01:25.983 に答える
0

ファイルを文字列に読み込んでから

str = str.replaceAll("(?<=<!--\\$include=\")[^\"]+(?=\" ?-->)", something);

ファイル名を文字列に置き換えると、文字列somethingをファイルに書き戻すことができます。
(注: これにより、有効なファイル名だけでなく、二重引用符内のすべてのテキストが置き換えられます。)

ファイル名のみを html 拡張子に置き換えたい場合は、[^\"]+for を交換し[^.]+.htmlます。

このタスクに正規表現を使用すると、パフォーマンスが向上しますが、たとえば How to use regular Expression to parse HTML in Java? を参照してください。およびJava Regexのパフォーマンスなど。

于 2012-12-30T23:48:38.197 に答える
0

こんな感じですか?

<!--\$include=\"(?<htmlName>[a-z-_]*).html\"\s?-->
于 2012-12-30T19:28:57.527 に答える