मैं स्काला 2.8 निम्न कोड के साथ (बीटा 1) में एक विकल्प के समूह पर मैच के लिए कोशिश कर रहा हूँ:स्काला: मिलान वैकल्पिक नियमित अभिव्यक्ति समूहों
import scala.xml._
val StatementPattern = """([\w\.]+)\s*:\s*([+-])?(\d+)""".r
def buildProperty(input: String): Node = input match {
case StatementPattern(name, value) => <propertyWithoutSign />
case StatementPattern(name, sign, value) => <propertyWithSign />
}
val withSign = "property.name: +10"
val withoutSign = "property.name: 10"
buildProperty(withSign) // <propertyWithSign></propertyWithSign>
buildProperty(withoutSign) // <propertyWithSign></propertyWithSign>
लेकिन यह काम नहीं कर रहा। वैकल्पिक regex समूहों से मेल खाने का सही तरीका क्या है?
स्कैला Regex.unapplySeq में Matcher.group विधि का उपयोग करता है। यह निर्दिष्ट करता है कि यदि कोई समूह अनुक्रम के भाग से मेल नहीं खाता है, तो शून्य वापस आ गया है - –
यह अच्छा होगा अगर स्कैला एक वैकल्पिक रेगेक्स फ़ील्ड के लिए वैकल्पिक कक्षा के लिए विकल्प वर्ग का उपयोग कर सके, नल की जांच की आवश्यकता हो। –