Powershell RegularExpression работает не так, как ожидалось [dубликат]

remove не «действительно» удаляет что-либо, потому что он не может.

Чтобы «фактически» удалить элементы из контейнера, вам нужно получить доступ к API-интерфейсам контейнера. Если удаление выполняется только с помощью итераторов, независимо от того, на какие контейнеры указывают эти итераторы. Следовательно, даже если удаление требует «фактического удаления», оно не может.

Удалите перезаписанные «удаленные» элементы с помощью следующих элементов, которые не были удалены, и тогда вызывающий может решить использовать возвращенный новый логический end вместо исходного end.

В вашем случае удалите логически удаленные 1 из vector a, но размер остался до 2. Стереть фактически удалили элементы из вектора. [от вектора new end до old end]

Основная идея remove заключается в том, что он не может изменить количество элементов и просто удаляет элементы из диапазона в соответствии с критериями.

23
задан John Kugelman 12 March 2010 в 23:05
поделиться

2 ответа

Powershell в принципе нечувствителен к регистру (например, «HEy» -подобный «hey» is True ).

Если вы хотите использовать случай например, , используйте -clike [! ​​d3].

43
ответ дан Neolisk 16 August 2018 в 01:30
поделиться

По умолчанию чувствительность к регистру отключена:

  PS & gt;  'test', 'TEST', 'TeSt', 'notest' |  ?  {$ _ -like 'test'} test TEST TeSt  

Из документации:

По умолчанию все операторы сравнения нечувствительны к регистру. Чтобы сделать оператор сравнения чувствительным к регистру, перед именем оператора следует указать «c» . Например, версия "- eq" , чувствительная к регистру, является "- ceq" . Чтобы сделать нечувствительность к регистру явно, перед оператором следует «i» . Например, явно нечувствительная к регистру версия "- eq" - "- ieq" .

Для получения дополнительной информации запустите help about_comparison_operators

22
ответ дан LotPings 16 August 2018 в 01:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: