Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: 2in1 регулярные выражения / Excell Добавлено: 04.05.07 20:01  

Автор вопроса:  Champion | Web-сайт: afhelp.in.ua | ICQ: 461506481 
1. подскажите, где есть полное описание управляющих символов на русском?)
не могу создать требуемые шаблоны)

2. как произвести чтение диапазона ячеек одной коммандой, без использования клипборда?
пример с
переменная=objWkSh.Range("A1","Z100")
- возвращает Null
а перебор всех ячеек отдельно, занимает очень продолжительное время

Ответить

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

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



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 04.05.07 20:42
полное описание управляющих символов

Каких управляющих символов?
В чём?
Ты знаешь, что регэкспов много разных и у них разный синтаксис?

переменная=objWkSh.Range("A1","Z100";)

переменная=objWkSh.Range("A1:Z100";).value

Ответить

Номер ответа: 2
Автор ответа:
 Champion



ICQ: 461506481 

Вопросов: 38
Ответов: 88
 Web-сайт: afhelp.in.ua
 Профиль | | #2
Добавлено: 04.05.07 20:54
на все три знака вопроса, ответ один - нет)
не знаю ничего, а пример у меня только один есть, по которому разбираюсь с регулярными выражениями

в конкретном случае у меня есть строка на 50-200КБ
в ней нужно найти ссылки вида(опишу словами):
[начало="http://имя сайта"]
[дальше=неизвестное количество символов]
[конец(первый вариант)="rar"]
[конец(второй вариант)=в строке пробел]
т.е. искать ссылки двух видов, заканчиваюшихся на rar и если появился пробел, то это искомая ссылка

Ответить

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



ICQ: 461506481 

Вопросов: 38
Ответов: 88
 Web-сайт: afhelp.in.ua
 Профиль | | #3
Добавлено: 04.05.07 21:04
переменная=objWkSh.Range("A1:Z100";).value

при попытке присвоить текстовой переменной возникает ошибка "Type mismatch"
а если так
переменная=objWkSh.Range("A1:Z100";).Text

то ошибка "Invalid use of Null";)

если переменная вариант, то присваивается, но как мне потом "считать" что происвоилось?)
попытка принта в дебагере, вызывает те же ошибки

Ответить

Номер ответа: 4
Автор ответа:
 Champion



ICQ: 461506481 

Вопросов: 38
Ответов: 88
 Web-сайт: afhelp.in.ua
 Профиль | | #4
Добавлено: 04.05.07 21:20
ыыы .. всё, с экселем разобрался
нужно объявлять переменную как массив вариант
Dim rr()
rr = objWkSh.Range("A5:L159";).Value



и всё таки, кто может помочь с регулярными выражениями?)

Ответить

Номер ответа: 5
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 04.05.07 21:56
Регулярных выражений много. Я знаю, что есть:
1) PCRE (их юзает, например, PHP)
2) .NET (очень похожи на PCRE, но есть некоторые отличия, например, нет рекурсивных подмасок)
3) Perl (самые извратные)
4) POSIX (самые бедные)

Хорошо описанный синтаксис 1 на русском можно найти в документации по PHP. 4 можно найти в манах.

Ответить

Номер ответа: 6
Автор ответа:
 Champion



ICQ: 461506481 

Вопросов: 38
Ответов: 88
 Web-сайт: afhelp.in.ua
 Профиль | | #6
Добавлено: 04.05.07 22:45
Sharp ... я не совсем понимаю, в каком виде они есть?
может я не правильно сформулировал вопрос, попробую по другому

1. на VB6 я подключаю референс на "Microsoft VBScript Regular Expressions 5.5"
2. потом в проге
Dim StrVal$, nRegExp As New RegExp, Matches As MatchCollection, CharMatch As Match, i&
With nRegExp
  .pattern = "rdfsgdfgsdfgar"
  '('[^\r]*)(\r\n)?
  '.pattern = "<[^>]+>"
  '.pattern = ";(" + Chr(34) + Chr(91) + "^" + Chr(34) + Chr(93) + "*" + Chr(34) + ";)"
  .IgnoreCase = True
  .Global = True
  .MultiLine = True
End With
Set Matches = nRegExp.Execute(StrVal)
'Stop
If Matches.Count > 0 Then
  For Each CharMatch In Matches
    Debug.Print Chr(34) + CharMatch.Value + Chr(34) & " <<< at position " & CharMatch.FirstIndex
  Next
End If

делаю так

теперь вопрос)
из чего мне составить ".pattern = ???"
чтобы искало по условиям указанных во втором моём посте?

Ответить

Номер ответа: 7
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #7 Добавлено: 04.05.07 23:23
.Pattern = "http://имясайта.*?(rar|\s)"

Ответить

Номер ответа: 8
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 04.05.07 23:46
Надо еще конец ссылки как-то отметить, наверно?

Ответить

Номер ответа: 9
Автор ответа:
 Champion



ICQ: 461506481 

Вопросов: 38
Ответов: 88
 Web-сайт: afhelp.in.ua
 Профиль | | #9
Добавлено: 05.05.07 02:35
всем спасиба)
метод народного тыка победил)
правда тыкалка, чуть не поломалась
http://сайт[^>]+.rar

http://сайт[a-z0-9]{6}

Ответить

Страница: 1 |

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



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