/ / Какво не е наред с този регекс "" "[r]" "". R в скала - скала

Какво не е наред с този регекс "" "" "" "r в скала - скала

Той хвърля тази грешка:

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, не ми дава грешка. Б е специален в смисъл, че има различно значение, когато е в скоби (където е обратна шрифт) спрямо съответстващите граници на думите.

Отговори:

3 за отговор № 1

b не се интерпретира като знак за връщане. """[b]""" е еквивалентно на "[\b]", Причината за обратно натискане не е нужно да избягатекогато използвате тройните цитати е, че backslashes нямат особено значение, защото последователностите на escape не се поддържат изобщо. Така че няма начин да напишете характер на backspace в тази форма на низов израз.

За да използвате последователност на избягване, като например b за да представлявате обратно пространство, трябва да използвате традиционния стил на котиране:

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

За съжаление, вие ще сега трябва да избягате от всякакви други обратно наклонени черти, които може да са налице в обикновения ви израз.