Страница: 1 |
Страница: 1 |
Вопрос: 2in1 регулярные выражения / Excell
Добавлено: 04.05.07 20:01
Автор вопроса: Champion | Web-сайт:
1. подскажите, где есть полное описание управляющих символов на русском?)
не могу создать требуемые шаблоны)
2. как произвести чтение диапазона ячеек одной коммандой, без использования клипборда?
пример с
а перебор всех ячеек отдельно, занимает очень продолжительное время
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 04.05.07 20:42
Каких управляющих символов?
В чём?
Ты знаешь, что регэкспов много разных и у них разный синтаксис?
Номер ответа: 2
Автор ответа:
Champion
ICQ: 461506481
Вопросов: 38
Ответов: 88
Web-сайт:
Профиль | | #2
Добавлено: 04.05.07 20:54
на все три знака вопроса, ответ один - нет)
не знаю ничего, а пример у меня только один есть, по которому разбираюсь с регулярными выражениями
в конкретном случае у меня есть строка на 50-200КБ
в ней нужно найти ссылки вида(опишу словами):
[начало="http://имя сайта"]
[дальше=неизвестное количество символов]
[конец(первый вариант)="rar"]
[конец(второй вариант)=в строке пробел]
т.е. искать ссылки двух видов, заканчиваюшихся на rar и если появился пробел, то это искомая ссылка
Номер ответа: 3
Автор ответа:
Champion
ICQ: 461506481
Вопросов: 38
Ответов: 88
Web-сайт:
Профиль | | #3
Добавлено: 04.05.07 21:04
при попытке присвоить текстовой переменной возникает ошибка "Type mismatch"
а если так
то ошибка "Invalid use of Null"
если переменная вариант, то присваивается, но как мне потом "считать" что происвоилось?)
попытка принта в дебагере, вызывает те же ошибки
Номер ответа: 4
Автор ответа:
Champion
ICQ: 461506481
Вопросов: 38
Ответов: 88
Web-сайт:
Профиль | | #4
Добавлено: 04.05.07 21:20
ыыы .. всё, с экселем разобрался
нужно объявлять переменную как массив вариант
rr = objWkSh.Range("A5:L159".Value
и всё таки, кто может помочь с регулярными выражениями?)
Номер ответа: 5
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #6
Добавлено: 04.05.07 22:45
Sharp ... я не совсем понимаю, в каком виде они есть?
может я не правильно сформулировал вопрос, попробую по другому
1. на VB6 я подключаю референс на "Microsoft VBScript Regular Expressions 5.5"
2. потом в проге
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-сайт:
Профиль | | #8
Добавлено: 04.05.07 23:46
Надо еще конец ссылки как-то отметить, наверно?
Номер ответа: 9
Автор ответа:
Champion
ICQ: 461506481
Вопросов: 38
Ответов: 88
Web-сайт:
Профиль | | #9
Добавлено: 05.05.07 02:35
всем спасиба)
метод народного тыка победил)
правда тыкалка, чуть не поломалась