Если строка $ id уже содержит что-то вроде TAB, когда она передается вам, я не знаю встроенного метода для безопасного возврата ее обратно в "\ t". Вы должны убедиться, что ваш скрипт в первую очередь передал правильную строку. То есть необходимо передать 0x5C74 (\ t), а не 0x09 (TAB). Таким образом, экранирование должно быть выполнено, когда строка поиска впервые определена.
Regex.Escape будет экранировать TAB -> \ t, но также экранирует любой из этих символов, которые имеют значение в регулярных выражениях:
\, *, +,?, |, {, [, (,), ^, $,., # И пробел
например. , -> \.