2013-08-23 2 views
1

Я использую JAVA и хочу заменить каждый экземпляр текста между знаками доллара. Например:Java - RegEx для замены текста между знаками доллара

1st equation $\frac{1}{\mu -1}\frac{2\pi }{\lambda }x$ 
2nd equation $90^{^{0}}$ 
3rd equation $\frac{\mu t}{2}$ 
4th equation $2\mu tcosr=\frac{\left (2n+1 \right) \lambda}{2}$ 

заменить этим

1st equation <img src="http://latex.codecogs.com/gif.latex?$\frac{1}{\mu -1}\frac{2\pi }{\lambda }x$ " border="0"/> 
2nd equation <img src="http://latex.codecogs.com/gif.latex?$90^{^{0}}$" border="0"/> 
3rd equation <img src="http://latex.codecogs.com/gif.latex?$\frac{\mu t}{2}$" border="0"/> 
4th equation <img src="http://latex.codecogs.com/gif.latex?$2\mu tcosr=\frac{\left (2n+1 \right) \lambda}{2}$" border="0"/> 

я искал на stackoverflow.com и нашел что-то похожее на C# .NET RegEx to replace text between dollar signs

+0

Двойной побег e '$' like '\\ $'. – m0skit0

ответ

4

Я считаю, что это будет что-то вроде этого ...

myString.replaceAll("\\$[^$]*\\$", 
    "<img src=\"http://latex.codecogs.com/gif.latex?$0 \" border=\"0\"/>" 

The $0 в строке замены должны соответствовать группе захвата в поиске регулярных выражений на ...

String.replaceAll

Matcher.replaceAll

+2

Вам не нужно скрывать знак доллара внутри класса символов. Кроме того, вы можете удалить круглые скобки, если вы все равно не используете '$ 1'. Наконец, обратите внимание, что это не позаботится об экранированном '$' во входной строке. И это может привести к недопустимому HTML, если совпадение содержит '' '- но это проблема подхода OP, я думаю. –

+0

Хорошие точки (обновленные), но WRT' escaped $ ', на что вы ссылаетесь. –

+0

Что-то вроде' $ this \ $ should \ $ only \ $ give \ $ one \ $ match $ ' –

1

регулярное выражение используется в C# является одинаковым для Java, за исключением того, что вам нужно удвоить выход $.

"\\$([^\\$]*)\\$" 
+0

Спасибо за быстрый ответ, но я хочу, чтобы точный код повторялся для каждого экземпляра. –

+1

Я понимаю, но я думаю, этого достаточно, если вы знаете, как использовать регулярные выражения в Java. Я не собираюсь давать вам код для копирования-вставить его, извините;) – m0skit0

+0

Я не просил код скопировать-вставить, я не был уверен, как обращаться к подобранной группе. например. '$ 0' –