У меня есть строка some\string/with/**/special\chars\haha
.В переменной я держу chars
строку и пытаюсь удалить все до и включая chars
, поэтому ожидаемый результат будет \haha
Я пробовал что-то вроде:
$temp = "some\string/with/**/special\chars\haha"
$tmp="chars"
$temp -replace '(?s)^.*$tmp', ''
и
$temp -replace '(?s)^.*$([regex]::Escape($tmp))', ''
но единственное, что работает, это когда я помещаю строку непосредственно в условие регулярного выражения.Только этот пример дает ожидаемый результат:
$temp -replace '(?s)^.*chars', ''
Что я делаю не так?
Редактировать .: Мне нужно использовать переменную в регулярном выражении, потому что я перебираю несколькоСтроки, подобные этой, и не всегда та часть, которую я хочу удалить, имеет одинаковую строку (пример: some\string/with/**/special\chars\haha -> \haha
; C:\st/h/*/1234\asdf\x -> \x
).Итак, в заключение у меня проблема с использованием переменной в регулярном выражении, а не с самим регулярным выражением, поскольку это работает, как и предполагалось, когда я заменяю переменную на строку (как показано выше)