Войти

Показать полную графическую версию : [решено] Регулярное выражение


micolo
06-03-2014, 18:12
Доброго времени суток!
Подскажите пожалуйста как из строки "test [number] one" через findstr получить то, что находится в квадратных скобках (number). Что-то никак не осилю регулярку. Спасибо!

Iska
06-03-2014, 18:52
micolo, никак: «findstr.exe» не предназначен для извлечения подстрок — он возвращает строки целиком.

Там всегда есть пробелы вокруг «[…]»? Внутри «[…]» пробелы могут быть?

micolo
06-03-2014, 18:58
Да, внутри могут быть пробелы

Iska
06-03-2014, 19:18
Попробуйте так (помеченное — только для понимания, можете удалить):
@echo off
setlocal enableextensions enabledelayedexpansion

set sValue=test [nu mb er] one
set sWithoutLeftOutside=%sValue:*[=%
set sWithoutLeftOutsideAndInside=%sWithoutLeftOutside:*]=%
set sInside=!sWithoutLeftOutside:]%sWithoutLeftOutsideAndInside%=!

echo %sWithoutLeftOutside%
echo %sWithoutLeftOutsideAndInside%
echo %sInside%

endlocal
exit /b 0

Sp01LeR
06-03-2014, 20:22
Ну а на целевой машине совсем нельзя сторонние проги запустить?
Просто выборку number в скобках легко можно осуществить через GREP (порт юниксовых утилит для винды скачать можно тут: http://unxutils.sourceforge.net/UnxUpdates.zip).

http://n70me.host.sk/simg.php

micolo
06-03-2014, 20:23
Большое спасибо! То что нужно!




© OSzone.net 2001-2012