2014-07-05 6 views
8

कुछ भाषाओं में, उन्हें और अधिक पठनीयलंबी नियमित अभिव्यक्तियों, एम्बेडेड टिप्पणियां लिखने के लिए मुहावरे जाओ?

(yogi | booboo) # match something 
\s 
(the \s)?   # optional article 
bear    # bears are not Mr. Ranger 

AFAICT golang है कि विकल्प नहीं बनाने के लिए लंबे समय से नियमित अभिव्यक्ति में नई-पंक्तियों और रिक्त स्थान को एम्बेड करने के लिए सुविधा है कि सही है?

अभाव है कि, एक composed regex स्पष्टता के लिए एकमात्र विकल्प है? या कोई और मुहावरे है? मुझे अभी समय में लंबे समय तक regexen के किसी भी उदाहरण नहीं मिल रहा है।

+2

ध्यान रखें कि golang सबसे अन्य भाषाओं की तरह PCRE का उपयोग नहीं करता रखें, पढ़ने के बारे में [re2] (https://code.google.com/पी/re2/wiki/सिंटेक्स)। – OneOfOne

+0

मुझे रेगेक्स के लिए उचित बहुवचन सिखाने के लिए धन्यवाद। –

उत्तर

6

ज्यादातर समय लोग रेगेक्सपी मैचों के विवरण के साथ एक टिप्पणी प्रदान करते हैं। लेकिन जाओ स्रोत कोड के माध्यम से स्कीम मैं this दिलचस्प उदाहरण पाया है:

// removeRE is the list of patterns to skip over at the beginning of a 
// message when looking for message text. 
var removeRE = regexp.MustCompile(`(?m-s)\A(` + 
    // Skip leading "Hello so-and-so," generated by codereview plugin. 
    `(Hello(.|\n)*?\n\n)` + 

    // Skip quoted text. 
    `|((On.*|.* writes|.* wrote):\n)` + 
    `|((>.*\n)+)` + 

    // Skip lines with no letters. 
    `|(([^A-Za-z]*\n)+)` + 

    // Skip links to comments and file info. 
    `|(http://codereview.*\n([^ ]+:[0-9]+:.*\n)?)` + 
    `|(File .*:\n)` + 

    `)`, 
) 
+1

यह एक अच्छा उदाहरण है, इसे खोदने के लिए धन्यवाद। –

संबंधित मुद्दे