batch file - Findstr: Regex with Variable -
i have text file , formated this;
(1992){0103644}[00004] (1999){0137523}[00019] (1991){0103064}[00098] (2001){0246578}[00103] (2011){1399103}[00150]
what trying finding variable (which entered user) inside text. variable had search between {}
trying;
setlocal enabledelayedexpansion set "sira=1" set "test=103" /f "tokens=1-3 delims=(){}[]" %%a in ('findstr /irc:"\{[0-9]*!test![0-9]*\}" %murl%') ( set fisim[!sira!]=%%a set fyil[!sira!]=%%b set fidd[!sira!]=%%c set /a sira+=1 ) set /a sira-=1 /l %%i in (1,1,!sira!) call :_yazdir "%%i" "!fisim[%%i]!" "!fyil[%%i]!" "!fidd[%%i]!" "!satirrengi!" goto :eof
it works if write variable inside findstr (in case !test!
replaced 103
). there possible way find ?
ps: %murl% contains name of text file.
ps: :_yazdir function use print
if can tap regex engine supports lookarounds, can use regex:
(?<={)[^}]+(?=})
for instance, grep
in perl mode, can do:
grep -p "(?<={)[^}]+(?=})" myfile
in comments on windows, can use pcregrep
(which part of pcre
distribution).
explanation
- the
(?<={)
lookbehind asserts precedes{
[^}]+
matches 1 or more chars not}
- the
(?=})
lookahead asserts follows}
reference
Comments
Post a Comment