2016-08-28 14 views
0

wiki markupからHTML文書を生成するアプリケーションを作成しています。正規表現はHTMLタグにマークアップを置き換える正しい方法だと思いました。私はマークアップを見つけるために働く正規表現を思いついたが、文章を保持しながらそれを置き換えるJava APIを見つけることができなかった。Java Parsing Wiki構文正規表現

答えによって提案された正規表現:
--([^-]+)--(。正規表現--([^-])+--は、キャプチャグループ内+を移動すると、問題を解決するJava APIとうまく動作しません。)

例:
--This is strike--<strike>This is strike</strike>
This is ---- normal textまたは---Triple hyphens---のようなケースは置き換えないでください。 しかし、--striked----also striked--のようなケースが機能します。

Java 6のみでください。
助けを歓迎します。前もって感謝します。

編集:答えに基づいて、私はこの目的のために$1を使用できるようです。

+0

などの対象の文字列をキャプチャします[キャプチャグループ](https://docs.oracle.com/javase/tutorial/essential/regex/groups.html )。あなたは正規表現について多くのことを学ぶ必要があるように思えます。なぜなら、グループをキャプチャすることはきわめて基本的な正規表現だからです。 – Andreas

+1

[エクササイズをしないかぎり、ホイールを改造しないでください(https://blog.makk.es/java-libs-for-processing-wiki-markup.html)。 – tkausl

+0

あなたの正規表現はどちらもうまくいかないと思います。例えば、これは '--Thisはハイフンで打たれます - テキストの中にあります - ' – lyang

答えて

0

私の友人に尋ねた後、私は答えを得ました。

--([^-]+(-[^-]+)*)--は、あなたが探しているものをされて正常に動作して$1

2

グループ(...)は、発生順に1から番号が付けられています。 後置演算子* = 0以上、+は1以上です。

s = s.replaceAll("--([^-]+)--", "<strike>$1</strike>"); 
+0

正規表現 ' - ([^ - ])+ - 'がJava 6 APIでうまく動作しないことを確認しました。キャプチャグループ内で '+ 'を動かすことで問題は解決しました。 – minary