Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата blackeangel:
Мужики, это ж задача из разряда универсальных. »
blackeangel, для регулярных выражений не бывает универсальных задач. Шаблоны жёстко привязаны ко входному набору данных.

Цитата blackeangel:
так как никто не знает где что вылезет. »
Отнюдь. Форматы вполне определены, надо просто их знать.

Ваша регулярка может быть такой:
Код: Выделить весь код
[d-](?:[r-][w-][x-]){3}
Никаких привязок «в начале строки», «в середине строки», «в конце строки» в описанной Вами задаче делать не нужно.

WSH
Код: Выделить весь код
Option Explicit

Dim objFSO
Dim objRegExp

Dim strFile

Dim arrContent
Dim strLine
Dim strPath

Set objFSO    = WScript.CreateObject("Scripting.FileSystemObject")
Set objRegExp = WScript.CreateObject("VBScript.RegExp")

objRegExp.Pattern = "[d-](?:[r-][w-][x-]){3}"

For Each strFile In Array("0001.txt", "0002.txt", "0003.txt")
	WScript.Echo strFile
	
	With objFSO.OpenTextFile(strFile)
		arrContent = Split(.ReadAll(), vbCrLf)
		.Close
	End With
	
	For Each strLine In arrContent
		If objRegExp.Test(strLine) Then
			WScript.Echo objRegExp.Execute(strLine).Item(0).Value
		End If
	Next
Next

Set objRegExp = Nothing
Set objFSO    = Nothing

WScript.Quit 0


Если там, как писалось ранее, может быть l вместо d или - — добавьте в шаблон.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:59, 21-06-2017 | #7