Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] regexp. не закрытые скобки

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

Новый участник


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

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


помогите пожалуйста
нужен regexp для поиска в тотал командере файлов которые имеют такой вид
пример
слово1_-_слово2-(50505050)-слово4-слово5)-слово6
слово1_-_слово2-(50505050)-слово4-(слово5-слово6
но не
слово1_-_слово2-(50505050)-слово4-(слово5)-слово6

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

пробЫвал так но оно находит все три примера вышие
(\)(.){1,}[^\(](.){1,}[^\(]\))

Отправлено: 18:33, 31-10-2012

 

Ветеран


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

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


Цитата neprotiv:
(\)(.){1,}[^\(](.){1,}[^\(]\)) »
Точнее укажите, что именно Вам нужно получить. Ибо, судя по лишним скобкам, вам нужно не только найти, но и извлечь части имени (для дальнейшей работы?).

Отправлено: 21:06, 31-10-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


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

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


мне нужно найти неправильные имена файлов, тоесть если файл содержит лишнюю скобу - либо ( либо )
нашел примерный выход таким образом
(\)+[^\(]+[^\(]\)|\(+[^\)]+[^\)]\()
но оно ненаходит если файл выглядит так (лишняя скобка стоит очень близко с другой)
слово1_-_слово2-(50505050)-(слово4-слово5-слово6

Последний раз редактировалось neprotiv, 02-11-2012 в 13:51.


Отправлено: 22:30, 01-11-2012 | #3


Ветеран


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

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


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:
если файл содержит лишнюю скобу - либо ( либо ( »
«либо ( либо (» — оригинально . Очевидно, имелось в виду «Либо «(», либо «)»»?
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:19, 02-11-2012 | #4


Новый участник


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

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


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

Цитата Iska:
«либо ( либо (» — оригинально . Очевидно, имелось в виду «Либо «(», либо «)»»? »
да))...опечатка

Отправлено: 13:51, 02-11-2012 | #5


Ветеран


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

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


neprotiv, это именно то, что было потребно Вам?

Отправлено: 15:34, 02-11-2012 | #6


Новый участник


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

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


да то только вот никак не пойму как прикрутить к тотал командеру и вообще как он работает (скрипт)

Отправлено: 22:53, 05-11-2012 | #7


Ветеран


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

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


Цитата neprotiv:
да то только вот никак не пойму как прикрутить к тотал командеру »
Это зависит от того, что Вы хотели бы получить в нём.

Цитата neprotiv:
и вообще как он работает (скрипт) »
Для указанной папки:
Код: Выделить весь код
strFolder = "E:\Песочница\0197"
скрипт перебирает все файлы. Имя каждого файла, представляющее собой строку символов, разбивается в массив, сначала по символу открывающей скобки, затем — закрывающей. Для каждого из двух полученных массивов получается значение верхней границы. Если полученные значения не равны — значит количество отрывающих и закрывающих скобок не одинаково.
Код: Выделить весь код
If UBound(Split(objFile.Name, "(")) <> UBound(Split(objFile.Name, ")")) Then

Отправлено: 23:19, 05-11-2012 | #8


Новый участник


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

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


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

Отправлено: 23:36, 05-11-2012 | #9


Ветеран


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

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


1. В каком виде Вам нужен список файлов? В виде текстового файла? В виде сообщения?
2. Каких именно файлов? Из выделенных на панели?

Отправлено: 00:21, 06-11-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] regexp. не закрытые скобки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - [решено] Групповые политики - как задействовать закрытые функции eryoma Microsoft Windows 7 3 31-05-2012 16:48
Разное - [решено] regEXP | Вопрос по написанию. pingUIN Программирование и базы данных 10 14-12-2011 15:35
Java - RegExp JS Forpost Программирование и базы данных 1 06-02-2011 14:52
Теория - Regexp-ы, определение количества совпадений hasherfrog Программирование и базы данных 2 02-04-2009 12:11




 
Переход