Замена символов STX и ETB в VB6 с помощью Regex - PullRequest
0 голосов
/ 07 февраля 2019

Я читаю результаты COM-порта, используя приложение vb6, и мне нужно заменить некоторые символы, используя выражения регулярных выражений.

Проблема в основном в следующем: я получаю много ненужных символов междуСимволы "R" и "|", которые я хотел бы удалить.Для этого я использую функцию замены и выражения регулярных выражений, но это не работает.

Это код, который я написал в vb6:

objReg.Pattern = "R.*\|"
objReg.Global = True
x$ = objReg.Replace(Text1.Text, "R|")

Входной поток:

RDA
3|4|

что ((* R "+ ETB +" DA "+ STX +" 3|4| ")

Ожидаемый результат:

R|4|

Любая помощь в этом отношении будет высоко ценится, спасибо!

1 Ответ

0 голосов
/ 07 февраля 2019

Вы можете использовать

objReg.Pattern = "R[^|]+\|"
x$ = objReg.Replace(Text1.Text, "R|")

См. Демо регулярное выражение

Регулярное выражение будет соответствовать R, затем один или несколько символов, отличных от | (с шаблоном [^|]+), а затем литералом | char.Все совпадение будет заменено на R|.

Здесь вы также можете использовать группы захвата с обратными ссылками, если вам нужно сделать какие-либо дополнительные дополнения к шаблону:

objReg.Pattern = "(R)[^|]+(\|)"
x$ = objReg.Replace(Text1.Text, "$1$2")

(R) группа будет соответствовать $1 обратной ссылке, а (\|) будет соответствовать $2.

См. еще одну демонстрацию регулярных выражений .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...