Что нового

Вытащить путь с помощью StringRegExp

Vint91

Новичок
Сообщения
9
Репутация
0
Помогите пожалуйста с регулярным выражением, возможно ли вытащить путь из подобных конструкций? Ну и само собой длина пути заранее не известна. Пробелы в пути тоже могут присутствовать как и кириллица.
Код:
$nextwind='Some text - D:\Sometext\Sometext\Sometext.ptp - [Lalala LAD]'
$nextwind='Some text - [D:\Sometext\Sometext\Sometext]'
$nextwind='Some text - D:\Sometext\Sometext\Sometext'
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Так ?
Код:
Dim $nextwind[3]
$nextwind[0]='Some text - D:\Sometext\Sometext\Sometext.ptp - [Lalala LAD]'
$nextwind[1]='Some text - [D:\Sometext\Sometext\Sometext]'
$nextwind[2]='Some text - D:\Sometext\Sometext\Sometext'
$pattern='([A-Z]:\\[а-яА-Я\w. \\]+)'
For $i=0 to 2
	$rezult=StringRegExp($nextwind[$i],$pattern,1)
	If Not @error Then MsgBox(0,'',$rezult[0])
Next
 
Автор
V

Vint91

Новичок
Сообщения
9
Репутация
0
Да, спасибо большое. Я уже тоже составил, но мое максимально убогое получилось и не полностью уверен в нем:
Код:
$pattern='(?i)[A-Z]:.*(?= \- \[Lalala ...\])|[A-Z]:.*(?=\])\b|[A-Z]:.*'
И к вашему я добавил (?i)
Код:
$pattern='(?i)([A-Z]:\\[а-яА-Я\w. \\]+)'
 
Автор
V

Vint91

Новичок
Сообщения
9
Репутация
0
Нет, все таки не подходит полностью. Если в пути присутствуют спец символы то они не входят в regex.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Если в пути присутствуют спец символы то они не входят в regex
все допустимые символы должны быть перечислены в квадратных скобках "[а-яА-Я\w. \\]" (некоторые спецсимволы необходимо экранировать при помощи "\")
 
Верх