2010-11-03 69 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