Любой язык - [решено] regexp. не закрытые скобки

Аватара пользователя
neprotiv

Любой язык - [решено] regexp. не закрытые скобки

Сообщение neprotiv »

помогите пожалуйста

нужен regexp для поиска в тотал командере файлов которые имеют такой вид

пример

слово1_-_слово2-(50505050)-слово4-слово5)-слово6

слово1_-_слово2-(50505050)-слово4-(слово5-слово6

но не

слово1_-_слово2-(50505050)-слово4-(слово5)-слово6



тоесть может содержать



пробЫвал так но оно находит все три примера вышие

(\)(.){1,}[^\(](.){1,}[^\(]\))
Аватара пользователя
Iska

Re: Любой язык - [решено] regexp. не закрытые скобки

Сообщение Iska »

Цитата neprotiv:



(\)(.){1,}[^\(](.){1,}[^\(]\))
Любой язык - [решено] regexp. не закрытые скобки




Точнее укажите, что именно Вам нужно получить. Ибо, судя по лишним скобкам, вам нужно не только найти, но и извлечь части имени (для дальнейшей работы?).
Аватара пользователя
neprotiv

Re: Любой язык - [решено] regexp. не закрытые скобки

Сообщение neprotiv »

список неправильных файлов в текстовом документе
Аватара пользователя
neprotiv

Re: Любой язык - [решено] regexp. не закрытые скобки

Сообщение neprotiv »

neprotiv, если нужно просто найти файлы с потерянной скобкой — regexp не обязателен, достаточно просто посчитать количество открывающих и закрывающих скобок, затем сравнить эти количества.



Пример на WSH:



Код:

Код: Выделить всё

Option Explicit
Dim strFolder
Dim objFile
'strFolder = WScript.Arguments.Item(0)
strFolder = "E:\Песочница\0197"
With WScript.CreateObject("Scripting.FileSystemObject")
	If .FolderExists(strFolder) Then
		For Each objFile In .GetFolder(strFolder).Files
			If UBound(Split(objFile.Name, "("))  UBound(Split(objFile.Name, ")")) Then
				WScript.Echo objFile.Name
			End If
		Next
	Else
		WScript.Echo "Folder [" & strFolder & "] not found"
	End If
End With
WScript.Quit 0


↧ Возможный результат ↧




Код:

Код: Выделить всё

слово1_-_слово2-(50505050)-слово4-(слово5-слово6.txt
слово1_-_слово2-(50505050)-слово4-слово5)-слово6.txt







Цитата neprotiv:



если файл содержит лишнюю скобу - либо ( либо (
Любой язык - [решено] regexp. не закрытые скобки




«либо ( либо (» — оригинально Изображение. Очевидно, имелось в виду «Либо «(», либо «)»»?
Аватара пользователя
Iska

Re: Любой язык - [решено] regexp. не закрытые скобки

Сообщение Iska »

большое спасибо




Цитата Iska:



«либо ( либо (» — оригинально . Очевидно, имелось в виду «Либо «(», либо «)»»?
Любой язык - [решено] regexp. не закрытые скобки




да))...опечатка
Аватара пользователя
neprotiv

Re: Любой язык - [решено] regexp. не закрытые скобки

Сообщение neprotiv »

neprotiv, это именно то, что было потребно Вам?
Аватара пользователя
Iska

Re: Любой язык - [решено] regexp. не закрытые скобки

Сообщение Iska »

neprotiv, это именно то, что было потребно Вам?
Аватара пользователя
Iska

Re: Любой язык - [решено] regexp. не закрытые скобки

Сообщение Iska »

Цитата neprotiv:



да то только вот никак не пойму как прикрутить к тотал командеру
Любой язык - [решено] regexp. не закрытые скобки




Это зависит от того, что Вы хотели бы получить в нём.




Цитата neprotiv:



и вообще как он работает (скрипт)
Любой язык - [решено] regexp. не закрытые скобки




Для указанной папки:



Код:

Код: Выделить всё

strFolder = "E:\Песочница\0197"

скрипт перебирает все файлы. Имя каждого файла, представляющее собой строку символов, разбивается в массив, сначала по символу открывающей скобки, затем — закрывающей. Для каждого из двух полученных массивов получается значение верхней границы. Если полученные значения не равны — значит количество отрывающих и закрывающих скобок не одинаково.



Код:

Код: Выделить всё

If UBound(Split(objFile.Name, "("))  UBound(Split(objFile.Name, ")")) Then
Аватара пользователя
neprotiv

Re: Любой язык - [решено] regexp. не закрытые скобки

Сообщение neprotiv »

мне надо чтоб он создал список файлов с полным путем

можно ли использовать его как кнопку?
Аватара пользователя
neprotiv

Re: Любой язык - [решено] regexp. не закрытые скобки

Сообщение neprotiv »

мне надо чтоб он создал список файлов с полным путем

можно ли использовать его как кнопку?
Ответить

Вернуться в «Скриптовые языки администрирования Windows»