Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 1 |

 

  Вопрос: Регулярные выражения - нужна помощь Добавлено: 03.06.04 12:22  

Автор вопроса:  SuperBoris | ICQ: 155303702 

Есть строка следующего типа: "c:\Nata Shest\F B A\file1.mdb file2.mdb file3.mdb file4.mdb" - путь к файлам и перечень файлов через пробелы. Путь может быть сколь угодно ветвистым, и файлов может буть любое количество (в имени файлов не может быть пробелов).

Необходимо получить перечень файлов:

file1.mdb

file2.mdb

file3.mdb

file4.mdb

У меня это получилось сделать только следующим образом:

1. Вначале я распарсил искомую строчку следующим образом "([^\\]+)$" и получил строку "file1.mdb file2.mdb file3.mdb file4.mdb"

2. На втором этапе полученное выражение я распарсил так - "([^ ]+)" и получил то, что требовалось.

 Я не очень силен в регулярных выражениях, и поэтому мне интересно можно ли данную операцию выполнить за один этап и если можно то как?

С уважением, Boris.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 dNW



Вопросов: 30
Ответов: 683
 Профиль | | #1 Добавлено: 03.06.04 13:41

Попробуй Split()

Ответить

Номер ответа: 2
Автор ответа:
 Андрей Щёкин [darxeth]



ICQ: 161560107 

Вопросов: 9
Ответов: 52
 Web-сайт: www.livejournal.com/users/darxeth_digital
 Профиль | | #2
Добавлено: 04.06.04 01:53
В один этап можно. Что-то вроде ([^.\\]+\.[^ ]+)

Но я не могу понять, как в c:\Nata Shest\F B A\file1.mdb догадаться, что F и B это не отдельные имена файлов.

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

Ответить

Номер ответа: 3
Автор ответа:
 SuperBoris



ICQ: 155303702 

Вопросов: 3
Ответов: 2
 Профиль | | #3 Добавлено: 04.06.04 11:57
Андрей Щёкин, можешь объяснить почему именно в таком виде ты сфорировал маску для регулярного выражения? Я просто не совсем понял что к чему.

С уважением, Boris.

Ответить

Номер ответа: 4
Автор ответа:
 Андрей Щёкин [darxeth]



ICQ: 161560107 

Вопросов: 9
Ответов: 52
 Web-сайт: www.livejournal.com/users/darxeth_digital
 Профиль | | #4
Добавлено: 04.06.04 23:05
Boris, это просто первый пришедший мне в голову вариант (но он работает на твоём примере, я проверил).
Вот пояснение:


(
    [^.\\]+  (?# текст до точки - не точка и не slash (непосредственно имя))
    \.       (?# точка)
    [^\ ]+   (?# текст после точки - не пробел (расширение))
)


Но если точки в имени файла нет, он не будет работать.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам