Регулярное выражение для текста

Подскажите, как убрать только первое "-" в строках:

60.125-Sample Data Point - AQL -> 60.125 Sample Data Point - AQL
54.09-E-Procedure Execution_03 -> 54.09 E-Procedure Execution_03 

с помощью регулярного выражения?


Ответы (1 шт):

Автор решения: Wiktor Stribiżew

В Powershell для удаления первого вхождения любого шаблона можно воспользоваться методом Replace объекта [Regex]:

PS C:\Users\admin> $R = [Regex]"-"
PS C:\Users\admin> $R.Replace($str, ' ', 1)
60.125 Sample Data Point - AQL

Подробности

  • $R = [Regex]"-" - в переменной $R задаётся шаблон -
  • $R.Replace($str, ' ', 1) - находит 1 совпадение (первое) в строке $str и заменяет его пробелом.

Если заменить аргумент count с 1 на 2, будут заменены первые два совпадения.

См. справку MSDN по Regex.Repalce(String, String, Int32).

→ Ссылка