Пакетная обработка: извлечь несколько символов строки

392
Basj

Как извлечь буквенно-цифровые символы только из строки?

Пример: b:lbalbqsd1287/;:!,даетblbalbqsd1287

Это возможно с findstr?

1
`findstr` работает ** на ** строках, а не ** на ** строках и никогда не извлекает что-либо. Endoro 11 лет назад 0

1 ответ на вопрос

0

Я думаю, что это может быть как-то возможно сделать в пакетном режиме. Я не знаю как, и я уверен, что это больно, не поддается ремонту и безобразно. Но, в качестве альтернативы, вы можете использовать vbscript для выполнения работы (также встроенный и должен быть доступен в каждой ОС).
Я написал этого маленького парня здесь для вашего удовольствия :)

Option Explicit 
Dim sInput, sOutput sInput = "b:lbalbqsd1287/;:!,"
sOutput = RegEXP_VBS(sInput) Call MsgBox (sOutput)
Function RegEXP_VBS(sIn) Dim oREGEXP, oResult, oMatch
Set oREGEXP = CreateObject("vbscript.regexp") oREGEXP.IgnoreCase = False oREGEXP.MultiLine = False oREGEXP.Global = True oREGEXP.Pattern = "[a-zA-Z0-9]"
Set oResult = oREGEXP.Execute(sIn) For Each oMatch in oResult RegEXP_VBS = RegEXP_VBS & oMatch.Value Next
End Function


Как вы можете видеть, он использует регулярное выражение для задания, которое вы можете изменить довольно легко, если изменится диапазон строки поиска.

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