2010-11-03 32 views
0

我想用Java制作一个wiki语法解析器。我有一个在PHP有点像这样的事情:Java中的Wiki语法解析器

private static function runAllConversions($pString) { 
    $tConverted = $pString; 
    $tConverted = stripTags($tConverted); 

    // Bold and italic text. 
    $tConverted = preg_replace('/\'\'\'\'\'([^\n\']+)\'\'\'\'\'/', 
     '<strong><i>${1}</i></strong>', $tConverted); 

在替代我想到replaceAll而不是PHP中的preg_replace。我想它会是这样的:

// Bold text in Java. 
converted = converted.replaceAll('/\'\'\'([^\n\']+)\'\'\'/', 
    '<strong>${1}</strong>', converted); 

任何人有什么好的建议吗? 谢谢!

+1

为什么你做这么多的反斜杠转义时,你可以使用不同的引号呢? ''/'''''([^ \\ n'] +)'''''/“' – Amber 2010-11-03 18:45:43

+0

hmm。好点子。不知道。 – Tim 2010-11-03 18:54:28

回答

2
converted = converted.replaceAll("'{5}([^\n']+)'{5}", "<strong><i>$1</i></strong>"); 
  • 我用'{5}代替'''''但它们是相同的。
  • PHP中的两个分隔符/特定于PHP。它们不应该出现在Java的正则表达式中。

顺便说一句,您可以使用existing MediaWiki parser来代替。

+0

+1,很好的解决方案。 – aioobe 2010-11-03 19:10:39

+0

谢谢你的回答。虽然我不想使用现有的。也许我应该提到,我想将wiki语法转换为html。 – Tim 2010-11-03 19:34:12

+0

@Tim:那些现有的可以生成HTML。 – kennytm 2010-11-03 19:34:58