Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Регулярные Выражения / 5 сообщений из 5, страница 1 из 1
14.12.2006, 14:15
    #34200047
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные Выражения
Господа, здравствуйте !
Вопрос.

Имеется некий текст (RichTextBox)
Имеется код с использованием регулярных выражений:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Sub Command1_Click()
Dim regEx As Object
Dim strng As String
Dim m As MatchCollection
Set regEx = New VBScript_RegExp.RegExp

With regEx
.pattern = "[$][A-Z][a-z]*"
.IgnoreCase = True
.Global = True
End With

rtb.SelText = regEx.Replace(rtb.Text, "???")
'rtb.SelText = vbGreen

Set regEx = Nothing
End Sub

Как перебрать его, чтобы в конечном результате,
получили то что ищем в цвете (типа = vbGreen ?)

Спасибо.
...
Рейтинг: 0 / 0
14.12.2006, 14:49
    #34200203
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные Выражения
а что ищем в цвете ?
пример в студию
...
Рейтинг: 0 / 0
14.12.2006, 14:56
    #34200235
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные Выражения
Кусочек текста (прога на М) :
Код: plaintext
1.
2.
3.
4.
5.
6.
   S GG=$P(^K1,":", 2 ),GJ=""
    S LN=$P(^K1,":") S:$L(LN)= 1  LN="0"_LN,GJ=""
    S DGDM=GG_LN
    F  S A1=$O(^NS1(A1)) Q:A1=""  D
    .F  S A2=$O(^NS1(A1,A2)) Q:A2=""  D
    ..F  S A3=$O(^NS1(A1,A2,A3)) Q:A3=""  D
    ...F  S A4=$O(^NS1(A1,A2,A3,A4)) Q:A4=""  D
...
Рейтинг: 0 / 0
14.12.2006, 15:01
    #34200257
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные Выражения
Получить список всех совпадений.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    Dim objRegExp As RegExp
    Dim objMatches As MatchCollection
    Dim objMatch As Match
    Dim strText As String
    Dim intI As Integer

    Set objRegExp = CreateObject("VBScript.RegExp")
    
    objRegExp.Pattern = "абв+"
    objRegExp.Global = True
    
    strText = "абв 123 абв абвв 456"
    
    Set objMatches = objRegExp.Execute(strText)
    
    For intI =  0  To objMatches.Count -  1 
        Set objMatch = objMatches.Item(intI)
        Debug.Print objMatch.Value
    Next intI

А для замены цвета слов в RTF использовать метод Find.
...
Рейтинг: 0 / 0
15.12.2006, 09:14
    #34201804
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные Выражения
Используя компоненту VSFlexString я добился кое-каким результатом,
но при разборе текста программы в RTF, процедура происходит медленно
и для пользователя неприятен мигание текста ...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim i As Integer
Dim txtPattern As String
   fs = rtb.Text
   fs.Pattern = "[$][A-Z][a-z]*"
   For i =  0  To fs.MatchCount -  1 
   rtb.SelStart = fs.MatchStart(i)
   rtb.SelLength = fs.MatchLength(i)
   rtb.SelFontName = "Courier New"
   rtb.SelBold = True
   rtb.SelFontSize =  10 
   rtb.SelColor = vbMagenta
    Next

Может существуют другие приемы ?
Я хочу стандартными способами используя регулярные выражения
добится хорошим результатом но никак не могу разобраться...

Спасибо.
В инете куча редакторов которые используют подсветку синтакса,
значит каким-то образом это можно это делать, ну естественно средствами VB...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Регулярные Выражения / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]