Hallo zusammen,
Ich versuche, ein Programm zu schreiben, bei dem man einfach HTML-Seiten erstellen kann. Dazu will ich die Wikipedia-Formatierung verwenden, '''dies''' (fett) soll z. B. in dies umgewandelt werden. Ich hab jetzt begonnen, das mit regulären Ausdrücken zu machen. Für Links beispielsweise sehen die regulären Ausdrücke so aus:
(RegexpReplacer ist selber gebastelt, s. u.)
Das wird aber recht schnell komplizierter, eigentlich ist mir auch das schon kompliziert genug. Darum: Gibt es eine bessere Möglichkeit, Links, Formatierungen, Tabellen (!) usw. aufzuspüren? Oder weiss jemand sogar, wie das in der Wikipedia gemacht wird?
Granjow
RegexpReplacer, für Interessierte:
Ich versuche, ein Programm zu schreiben, bei dem man einfach HTML-Seiten erstellen kann. Dazu will ich die Wikipedia-Formatierung verwenden, '''dies''' (fett) soll z. B. in dies umgewandelt werden. Ich hab jetzt begonnen, das mit regulären Ausdrücken zu machen. Für Links beispielsweise sehen die regulären Ausdrücke so aus:
Code:
replace.put("a[", new RegexpReplacer("\\[http://[^\\n\\r]*\\]", ""));
replace.put("i[1", new RegexpReplacer("\\[", "<a href=\""));
replace.put("i[2", new RegexpReplacer("\\]", "</a>"));
replace.put("b[1", new RegexpReplacer("[\\s]+", "\">"));
Das wird aber recht schnell komplizierter, eigentlich ist mir auch das schon kompliziert genug. Darum: Gibt es eine bessere Möglichkeit, Links, Formatierungen, Tabellen (!) usw. aufzuspüren? Oder weiss jemand sogar, wie das in der Wikipedia gemacht wird?
Granjow
RegexpReplacer, für Interessierte:
Code:
package testing;
import java.util.regex.Pattern;
public class RegexpReplacer {
private Pattern pattern;
String replace = new String();
private String sPattern = new String();
/**
* Creates a new RegexpReplacer.
*
*/
RegexpReplacer() {
}
/**
* Creates a new RegexpReplacer. Has a String and a pattern which - when
* found - shall be replaced.
*
* @param PATTERN -
* set Pattern
* @param REPLACE -
* set the replace String
*/
RegexpReplacer(String PATTERN, String REPLACE) {
sPattern = PATTERN;
initPattern();
replace = REPLACE;
}
/**
* Recompiles the pattern from the Regular Expression (String)
*
*/
public void initPattern() {
pattern = Pattern.compile(sPattern);
}
/**
* @param PATTERN -
* set the Pattern
*/
public void setPattern(String PATTERN) {
sPattern = PATTERN;
initPattern();
}
/**
* @return the pattern
*/
public Pattern getPattern() {
return pattern;
}
/**
* @return regular expression as String
* @todo \\d is shown as regular Expression \d. --Conflicts?
*/
public String getRegexp() {
return pattern.toString();
}
public static void main(String args[]) {
RegexpReplacer test = new RegexpReplacer("\\d.*", "4");
System.out.println(test.pattern);
System.out.println(test.getRegexp());
}
}