|
|
|||||||||||||||||||||||||||||||||||||||||
-replace регулярные выражения22.01.2020, 09:19. Показов 6650. Ответов 16
Метки нет (Все метки)
Добавлено через 3 минуты и еще есть пара вопросов почему
а
и почему
0
|
|||||||||||||||||||||||||||||||||||||||||
| 22.01.2020, 09:19 | |
|
Ответы с готовыми решениями:
16
Выделить из строки имя компьютера, используя регулярные выражения
Регулярные выражения: круглые скобки в replace |
|
22 / 18 / 4
Регистрация: 28.07.2015
Сообщений: 167
|
||||||
| 22.01.2020, 10:36 | ||||||
|
Когда мне нужно передать допустим столбец данных из Excel в PS как массив,
я делаю вот так: 1. Выделяю столбец и нажимаю Ctrl+c 2.
0
|
||||||
|
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
|||||||||||
| 22.01.2020, 15:12 | |||||||||||
|
alhaos, не много ли оператора -replace?
0
|
|||||||||||
|
|
||||||||||||
| 22.01.2020, 15:36 [ТС] | ||||||||||||
|
тут я не понимаю
0
|
||||||||||||
|
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
||||||||||||
| 22.01.2020, 16:14 | ||||||||||||
|
alhaos, если так будет понятней:
0
|
||||||||||||
|
|
|||||||
| 23.01.2020, 06:44 [ТС] | |||||||
0
|
|||||||
|
6799 / 2297 / 349
Регистрация: 10.12.2013
Сообщений: 7,924
|
|||
| 23.01.2020, 20:08 | |||
Сообщение было отмечено alhaos как решение
Решениеизображать невидимые символы ASCII-таблицы с помощью метасимволов, используя приставку \ бэкслэш в качестве этой самой 'меты' \n - newline <NL> \r - carriage return <CR> \t - horizontal tabulation <TAB> итд и использовать прямой / слэш в качестве разделителей путей. Но корпорация IBM зачем-то поддержала 'прогрессивную' идею использовать в путях бэкслэш и использовала их в интерпретаторах OS/2 cmd и REXX, что по наследству перешло и к Microsoft ( rexx к сожалению не перешёл ). В результате в powershell имеем: "C:\newfolder\file.txt" и как тут быть с такой \n ?? Или использовать "C:\\newfolder\\file.txt", как это делается в языке "C" ? Но в командном шелл работа с путями происходит ежесекундно и это должно быть удобно. Поэтому метасимвол бэкслэш (\) в строке с интерпретирующими кавычками заменили на метасимвол бэктик (`) `n - newline <NL> `r - carriage return <CR> `t - horizontal tabulation <TAB> но `x - это просто символ x, никакого метазначения у него нет, а `\ - это просто бэкслэш, а `\n - это бэкслэш, за которым следует буква n. Но в синтаксисе самих регулярных выражениях бэкслэш по-прежнему исполняет привычную историческую роль приставки для метасимвола. Добавлено через 3 часа 26 минут Из теории. Одним из возможных значений после применения квантификатора '*' является 'НИЧЕГО' и вот это НИЧЕГО сразу совпало с истиной в самом начале исследуемой строки. А поскольку при разных вариантах совпадений выигрывает самое левое значение, то именно оно ( НИЧЕГО ) и вернулось. Добавлено через 12 минут 0 1 2 3 4 5 6 string↸ совпало здесь и дальше механизм рег.выр. даже дёргаться не стал, а сразу вернул значение, потому что левее нуля (начало строки) ничего быть не может.
1
|
|||
|
Любознательный
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
|
|||||||
| 25.01.2020, 12:53 | |||||||
|
Из теории: . - любой символ, с зависимостью от ключа (?-s) относительно символа перевода строки* - жадный квантификатор^ - спецсимвол начала строки
Хмм, а вот хз, что за вывод. Где логика? Если точка - любой символ, то захвачено должно быть всё в единый блок и замена должна произойти на единственный символ "1", но увы и ах... Если точка - не совсем любой символ, т.е. не захватывает символ "^", то всё равно, замена должна быть произведена один раз, а начало строки "^" никаким образом не заменится. Главный вопрос по этому шаблону: '^.*', который захватывает всё и замена происходит один раз...Чушь какая-то или багофича...
0
|
|||||||
|
6799 / 2297 / 349
Регистрация: 10.12.2013
Сообщений: 7,924
|
|||||||||||||||||
| 26.01.2020, 14:43 | |||||||||||||||||
11.при шаблоне .* первый раз совпадение случится в самом начале строки даже при отсутствии каких бы то ни было символов в этой строке. и это будет 1-я единица. Но -replace по умолчанию имеет режим глобальнойзамены, поэтому процесс продолжится и вторая единица на выходе - это результат замены на неё всех символов в строке. для сравнения:
надо подумать..
0
|
|||||||||||||||||
|
Любознательный
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
|
|||||||||||||
| 26.01.2020, 18:20 | |||||||||||||
|
Почему говорю о багофиче? Учитывая допущение, указанное выше, даже если было совпадение шаблона, то в силу жадности квантификатора, движок регэкспов просто обязан, после всех шагов, выдать единственное совпадение шаблона со всем текстом, включая непечатные символы, ибо . - любой символ.Опять таки, если допущение считать верным, то и такой шаблон:
А ежели, квантификатор сделать ленивым:
Так что, багофича - она и есть багофича.
0
|
|||||||||||||
|
6799 / 2297 / 349
Регистрация: 10.12.2013
Сообщений: 7,924
|
||
| 26.01.2020, 19:18 | ||
|
я, когда отвечал alhaos, написал, что выражение .* имеет своим допустимым значением 'НИЧТО',которое прекрасно находится движком в самом начале строки и выигрывает. а .*м - это совсем другое дело.Добавлено через 2 минуты .*м* вот так выдаст две.
0
|
||
|
Любознательный
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
|
|||
| 26.01.2020, 20:28 | |||
|
совпадает если ноль или более символов, за которыми сразу следует символ "м" То бишь, часть шаблона .* просто обязана захватить максимальное количество символов до крайнего символа "м", а уже после захвата передать следующим шагом конечный символ "м", а т.к. такой шаблон захватывает и "ничего", то он должен возвращать два совпадения (поведение шаблона не должно изменяться от наличия или отсуствия рядом ещё одного шаблона в составе большего, имхо), конечно, если вышеупомянутое допущение считать верным.Но я так и не понимаю, с какого такого перепуга простой шаблон ".*", который, всего лишь, обязан возвращать совпадение ноль или более любых символов, вдруг возвращает два совпадения вместо единственного? Да и вообще, такое поведение должно быть описано в документации, но увы так и не нашел ничего похожего... может плохо искал? Есть какие-нибудь данные из заслуживающих доверия источников?
0
|
|||
|
6799 / 2297 / 349
Регистрация: 10.12.2013
Сообщений: 7,924
|
|||||||
| 26.01.2020, 21:04 | |||||||
|
YuS_2, внимательнее,
классик же всё сразу написал: Термин 'Жадность' к этому соревнованию не имеет отношения, жадность относится к тому, где остановится внутренний курсор, когда движок будет перебирать состояния при отработке шаблона .*. А остановится он на последнем символе. А индекс у этого символа - 2,в то время как индекс у совпавшего НИЧТО - 0, он левее и поэтому выиграл. Добавлено через 17 минут и вот теперь весьма интересно будет разобраться, почему после
1х1м1м1
0
|
|||||||
|
Любознательный
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
|
||||||||
| 26.01.2020, 23:48 | ||||||||
.* отрабатывает два раза... тем более, что я таки нашел некоторую документацию по PCRE. Там это поведение является настраиваемым (PCRE2_NOTEMPTY), в отличие от dotnet.Ещё здесь попалось хорошо разжеванное объяснение. В общем, теперь есть некоторое понимание логики. Но, однако, это никак не объясняет того, почему сами символы не заменяются... в PCRE всё работает верно, там получаем 7 единиц, а вот с dotnet-ом прям бяда. ![]() И да, так и остался не рассмотренным вопрос с шаблоном ^.* - это ведь тоже шаблон нулевой длины, но однако не получается захватить "ничего", в отличие от такого варианта: ^|.*.Но опять же, в dotnet, это работает довольно странно:
В общем, пока одни сплошные разрывы шаблонов...
0
|
||||||||
|
9 / 9 / 1
Регистрация: 27.02.2013
Сообщений: 156
|
|
| 15.02.2022, 12:26 | |
|
Народ, а подскажите. Повершел может найти в текстовом определенное ключевое слово и заменить его например инкрементом от моего начального значения?
Например, начальное 220. Первое вхождение будет 220, второе 221 и т.д. И расширение вопроса - математические операции с инкрементом. Первое 220*0.5, второе 221*0.5 и т.д Спасибо!
0
|
|
|
|
||||||||||||
| 15.02.2022, 13:06 [ТС] | ||||||||||||
|
мне вот такое решение в голову пришло
Косяк в конце тоже инкремент
0
|
||||||||||||
| 15.02.2022, 13:06 | |
|
Помогаю со студенческими работами здесь
17
ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Регулярные выражения - вывод сообщения об ошибке при нахождении в строке выражения, начинающегося с цифры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|