powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Регулярные Выражения
5 сообщений из 5, страница 1 из 1
Регулярные Выражения
    #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
Регулярные Выражения
    #34200203
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что ищем в цвете ?
пример в студию
...
Рейтинг: 0 / 0
Регулярные Выражения
    #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
Регулярные Выражения
    #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
Регулярные Выражения
    #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
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Регулярные Выражения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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