Иногда с помощью персонажей, которые вы указали, возможно простое экранирование. Например, использование обратной косой черты для выхода из скобки не будет работать в левой части строки подстановки в sed, а именно
sed -e 's/foo\(bar/something_else/'
. Я просто использую простое определение класса символов вместо , поэтому вышеприведенное выражение становится
sed -e 's/foo[(]bar/something_else/'
, которое я нахожу для большинства реализаций регекса.
BTW Классы символов являются довольно ванильными элементами регулярного выражения, поэтому они, как правило, работают в большинстве ситуаций, когда вы нужны экранированные символы в регулярных выражениях.
Изменить: после комментария ниже, просто подумал, что я бы упомянул о том, что вам также нужно учитывать разницу между автоматами конечного состояния и автоматами не конечного состояния при просмотре поведение оценки regexp.
Возможно, вам захочется взглянуть на «блестящую книгу с шаром», а также на эффективную Perl ( санированную ссылку Amazon ), в частности главу о регулярных выражениях, чтобы получить почувствуйте тогда разницу в типах оценки двигателя regexp.
Не все в мире PCRE!
В любом случае, регулярные выражения настолько неуклюжи по сравнению с SNOBOL ! Теперь это был интересный курс программирования! Наряду с тем, что на Simula .
Ах, радости изучения в UNSW в конце 70-х! (-:
DWORD всегда 4 байта, независимо от системы (это тип Win32).
Максимальное значение для букв дисков в Windows равно 26. Потому что в английском алфавите только 26 букв :). Однако Windows допускает два способа монтирования тома:
Если вы хотите иметь более 26 дисков с дополнительными дисками, а перенаправляет на уже активные диски и не возражаете против их неправильной работы в большинстве программ, то вы можете назначить больше с помощью следующего метода (будьте осторожны, они даже не появятся в файловом обозревателе):
subst ♪: C:\Temp\
cd /D ♪:\
и удалить их (также они не сохраняются при перезагрузке):
subst /D ♪:
Вы можете перечислить все тома и точки их монтирования, как описано в этой статье.
Вы можете использовать WMI. Следующий запрос WMI должен перечислить все приводы:
SELECT * FROM Win32_DiskDrive
Недостаточно перечислить диски MS-DOS (их может быть не более 26, кстати, хотя каждый из них может быть связан дважды, один раз глобально и один раз локально в вашей сессии), том может, например, быть смонтирован в каталог. Вероятно, вы хотите перечислить все тома в системе, используя FindFirstVolume и т.д. Взгляните на связанный с ним MSDN пример .
.