Groovy: Как включить обратную косую черту внутри строки без экранирования?
Я хочу использовать следующий строковый литерал внутри моей программы groovy, не избегая обратных косых черт:
C:\dev\username
Вот что я пробовал до сих пор:
String (Single Quotes) и GStrings (Double Quotes)
def aString = 'C:\dev\username'
def aGString = "C:\dev\username"
- Не работает, потому что\имеет особое значение и используется для удаления других символов
- В итоге мне нужно сбежать\с другим \
def s = 'C:\\dev\\username'
Slashy String и доллар Slashy String
Работает для некоторых строк, например, следующих
def slashy = /C:\windows\system32/
def dollarSlashy = $/C:\windows\system32/$
Но он интерпретирует \u как имеющий особый смысл (следующее не работает):
def s1 = /C:\dev\username/
def s2 = $/C:\dev\username/$
- Groovy: не нашел четырехзначный шестнадцатеричный код символа
Ответы
Ответ 1
Ничего себе, еще одна проблема с установкой путей файлов Windows в slashy strings. Хорошо поймал. В начале, с которым я столкнулся, включалась обратная косая черта на пути, например. /C:\path\/
, что приводит к ошибке unexpected char: 0xFFFF
.
В любом случае, ради ответа, учитывая, что пути Windows нечувствительны к регистру, почему бы не использовать его за один раз?
def s = /C:\DEV\USERNAME/
Управляющая последовательность символов \u
unicode чувствительна к регистру.