Markdownのようなテキストでは、正確に3つのダッシュ(---
)をemdashエンティティに置き換えたいが、4つのダッシュを置き換えたくない。ダッシュの正確な数を一致させるJavaの正規表現
これを正規表現として書くにはどうすればよいですか?
私はこの試みた:
String input = "--- This---example----and--another.---";
String expected = "— This—example----and--another.—";
assertEquals(expected, input.replaceAll("-{3}", "—"));
をしかし、それは私を与える:
— This—example—-and--another.—
代わりに私が何をしたいの:3つのダッシュで表示されたときに
— This—example----and--another.—
が、私はそれが仕事をしたいです行の先頭または末尾にのいずれかの文字が含まれています。ダッシュ記号より)—、つまり、英数字で囲まれたときだけではありません。
男ああ、私もそれらのゼロ幅の先読み/後読み構文については知りませんでした。どうもありがとう! –