diff options
Diffstat (limited to 'parsers/WordDecoration.java')
-rw-r--r-- | parsers/WordDecoration.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/parsers/WordDecoration.java b/parsers/WordDecoration.java new file mode 100644 index 0000000..b2df37e --- /dev/null +++ b/parsers/WordDecoration.java @@ -0,0 +1,31 @@ +package scruf.parsers; + +import java.util.regex.*; +import java.util.*; +import java.io.*; +import scruf.io.*; + +public class WordDecoration implements Parser { + private HashMap<String, String> tagMap; + public WordDecoration() { + tagMap = new HashMap<String, String>(); + tagMap.put("''","<i>$6</i>"); + tagMap.put("__","<u>$6</u>"); + tagMap.put("'''","<b>$6</b>"); + tagMap.put("%%%","<blockquote>$6</blockquote>"); + } + public String parse(String fileContent) { + Pattern pattern = + Pattern.compile("((\\'\\'\\')|(\\_\\_)|(\\'\\')|(\\%\\%\\%))(.+?)((\\2)|(\\3)|(\\4)|(\\5))", + Pattern.DOTALL); + Matcher matcher = pattern.matcher(fileContent); + StringBuffer sbuffer = new StringBuffer(); + String replacement; + while(matcher.find()) { + replacement = tagMap.get(matcher.group(1)); + matcher.appendReplacement(sbuffer,replacement); + } + matcher.appendTail(sbuffer); + return sbuffer.toString(); + } +}
\ No newline at end of file |