Чтобы избежать экранирования от обратной косой черты, вы можете использовать косые строки или долларовые косые строки следующим образом.Однако вы не можете использовать обратную косую черту как самый последний символ в косых строках, так как он будет экранировать /
.Конечно, косые черты также должны быть экранированы при использовании косых строк .
String slashy = /String with \ /
echo slashy
assert slashy == 'String with \\ '
// won't work
// String slashy = /String with \/
String dollarSlashy = $/String with / and \/$
echo dollarSlashy
assert dollarSlashy == 'String with / and \\'
И, конечно, вы потеряете возможность включать переводы строки \n
и другие специальные символы встрока с использованием \
.Однако, поскольку строки с косой чертой и со строкой доллара имеют многострочную поддержку, по крайней мере, могут быть добавлены новые строки, например:
String slashyWithNewline = /String with \/ and \
with newline/
echo slashyWithNewline
assert slashyWithNewline == 'String with / and \\ \nwith newline'
String dollarSlashyWithNewline = $/String with / and \
with newline/$
echo dollarSlashyWithNewline
assert dollarSlashyWithNewline == 'String with / and \\ \nwith newline'
Если вы объедините это со своим собственным ответом, вам не понадобятся оба выхода.