2013-09-12 6 views
0

Я смущен следующими утверждениями.Замешательство при замене TCL

  1. % set a \\\\\w 
    \\w 
    
  2. % set a \\\\w 
    \\w 
    
  3. % set a \\w 
    \w 
    

В первом заявлении я, имеющей 5 (обратную косую черту) и производится 2 (обратную косую черту) в качестве выходного сигнала.

Во втором заявлении у меня есть 4 (обратная косая черта), и в результате получается 2 (обратная косая черта).

В третьем заявлении у меня есть 2 (обратная косая черта), и в результате получается 1 (обратная косая черта).

Насколько я знаю \\ равен \ после замены.

Как это \\\\\ он должен вернуться один \ na.

Может ли кто-нибудь пояснить, как происходит замещение.

+1

Используйте '/' в именах файлов на окнах (и 'файл nativename' для преобразования, если это необходимо для внешних программ) и положить ваши регулярные выражения' '{фигурные скобки}' '. Это касается двух наиболее распространенных случаев путаницы с обратной косой чертой. –

ответ

2

Ну, это simple:

  • Есть некоторые специальные subsitutions, в том числе \\ будут подставлены в \, так \\\\ будет заменен \\ (не один \). Список всех специальных замещений см. В разделе manual.
  • В других управляющих последовательностях (например, \w) обратная косая черта будет удалена. Из manual:

    Во всех случаях, кроме описанных ниже обратной косой черты отбрасывается и следующий символ обрабатывается как обычный символ и включается в слово.

+0

В других управляющих последовательностях (например, \ w) обратная косая черта будет удалена. Можете ли вы объяснить это утверждение. поскольку я получаю то же самое для специальных символов, а также для неспецифических символов% set a \\\\\\\ 946 \\\ 946 % – user2742564

+0

ok, '' \\ '', '' \\ '', ' '\\' ',' '\ 946'' становится' '\' ',' '\' ',' '' '' ',' 946'. –

Смежные вопросы