इस रेगेक्स के साथ क्या गलत है "" [बी] "" "स्केल में स्केल - स्कैला

यह इस त्रुटि को फेंकता है:

scala> val a = """[b]""".r
java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 2

इसके अनुसार https://www.scala-lang.org/api/2.12.3/scala/util/matching/Regex.html, बैकस्लैश डॉन का उपयोग करते समय बच निकलने की जरूरत नहीं हैट्रिपल उद्धरण। जब मैं n, t, v के साथ यही कोशिश करता हूं, तो यह मुझे कोई त्रुटि नहीं देता है। B इस अर्थ में विशेष है कि ब्रैकेट्स के अंदर (जहाँ यह बैकस्पेस चार्ट है) बनाम मैचिंग शब्द सीमाओं के बीच इसका एक अलग अर्थ है।

उत्तर:

जवाब के लिए 3 № 1

b एक बैकस्पेस चरित्र के रूप में व्याख्या नहीं की जा रही है। """[b]""" के बराबर है "[\b]"। कारण backslashes डॉन "टी से बचने की जरूरत हैट्रिपल कोट्स का उपयोग करते समय यह है कि बैकस्लैश डॉन का कोई विशेष महत्व नहीं है, क्योंकि एस्केप सीक्वेंस बिल्कुल भी समर्थित नहीं हैं। इसलिए स्ट्रिंग अभिव्यक्ति के इस रूप में बैकस्पेस वर्ण टाइप करने का कोई तरीका नहीं है।

भागने के क्रम का उपयोग करने के लिए, जैसे कि b बैकस्पेस का प्रतिनिधित्व करने के लिए, आपको पारंपरिक उद्धरण शैली का उपयोग करने की आवश्यकता है:

scala> val a = "[b]".r
a: scala.util.matching.Regex = [?]

दुर्भाग्य से, आप मर्जी अब किसी भी अन्य बैकस्लैश से बचना होगा जो आपकी नियमित अभिव्यक्ति में मौजूद हो सकता है।