powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / regular variables
32 сообщений из 32, показаны все 2 страниц
regular variables
    #34855554
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здрасте =)
Как составить регулярное выражение, например для 080801.65.01.04?
...
Рейтинг: 0 / 0
regular variables
    #34855603
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И оффтоп немного: как возвратить только значущие символы, т.е. откинуть все пробелы , например из выражения пробелы string пробелы
Получить string?
...
Рейтинг: 0 / 0
regular variables
    #34855712
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для избавления от пробелов используем вот эти функции
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Lt(Str) ; * Убрать пробелы слева *
 Q $E(Str,$F(Str_".",$E($TR(Str_"."," ")))- 1 ,$L(Str))
Rt(Str) ; * Убрать пробелы справа *
 N s,l
 S l=$L(Str),s=$J("",l)
 Q $E(Str, 0 ,$F(Str_s,s)-l- 1 )
At(S) ; * Убрать пробелы слева и справа *
 Q $$Rt($$Lt(S))
А вот про "регулярные выражения" я что-то не понял... Можно по подробнее?
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
regular variables
    #34855735
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверняка при "поисках" все упрется в функцию $Find()
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
regular variables
    #34855738
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно, вотъ:
число бывает в таких формах:
хххх00.хх,
хххххх.хх.хх.00
хххххх.хх.хх.хх
Нужно раскидать его по классам в зависимости от см.выше.
...
Рейтинг: 0 / 0
regular variables
    #34855747
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. есть строка... А ее нужно определить к какому-то классу
1) *00.??,
2) *.??.??.00
3) *.??.??.??
Где "*" и "?" используются как маска DOS и "." значимый символ "формата"

Я правильно понял?
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
regular variables
    #34855758
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, все правильно понял, именно так и никак иначе.
...
Рейтинг: 0 / 0
regular variables
    #34855767
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ща напишу примерчик...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
regular variables
    #34855772
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок =)
...
Рейтинг: 0 / 0
regular variables
    #34855796
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С пробелами разобрался, спасибо, все работает как атомные часы %))
...
Рейтинг: 0 / 0
regular variables
    #34855847
NoGot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно все понял то:

1)
Код: plaintext
str?.N1"00."2N
2)
Код: plaintext
str?.N1"."2N1"."2N1".00"
3)
Код: plaintext
str?.N1"."2N1"."2N1"."2N

где str - проверяемая строка

Только вот строки входящие во второй класс, входят и в третий...
...
Рейтинг: 0 / 0
regular variables
    #34855866
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Че-то 0 реакции выдает (
...
Рейтинг: 0 / 0
regular variables
    #34855896
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот эта функция вроде решает такую проблему...
Код: plaintext
1.
2.
3.
4.
5.
TypeStr(Str) ; Определить тип строки
 s Str=$g(Str)
 q:Str?0E.E1"00."2E  1 
 q:Str?0E.E1"."2E1"."2E1".00"  2 
 q:Str?0E.E1"."2E1"."2E1"."2E  3 
 q  0 
Но я в сравнении по шаблону не очень силен Т.к. сталкивался с этим 2-3 раза...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
regular variables
    #34855900
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или чуть "сокращеный" вариант
Код: plaintext
1.
2.
3.
4.
5.
TypeStr(Str) ; Определить тип строки
 s Str=$g(Str)
 q:Str?.E1"00."2E  1 
 q:Str?.E1"."2E1"."2E1".00"  2 
 q:Str?.E1"."2E1"."2E1"."2E  3 
 q  0 
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
regular variables
    #34855911
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NoGot , а что за фигня эта единица? почему в середине нужно писать 2N1 , а в конце просто 2N ?
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
regular variables
    #34855940
NoGot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай документацию по ключевому слову "pattern" :)

2N - означает ровно две цифры, затем следует 1"." - означает ровно 1 символ "." и т.д...
...
Рейтинг: 0 / 0
regular variables
    #34855968
NoGot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2krvsa: как я понял там только цифры встречаются, так что в вашем варианте заменить E на N и получится то что надо, да? :)
...
Рейтинг: 0 / 0
regular variables
    #34856022
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NoGotв вашем варианте заменить E на N и получится то что надо, да? :)
Да. Я просто думал что там будут не только цифры... А вот с этой единицей у меня всегда происходят непонятки
Вроде как в документации описывают
Код: plaintext
Min.Max<код>
Вот я и думаю что это нужно пименять так
Код: plaintext
w str? 1 .4E"-"2E
F yf ltkt ghb[jlbncz gbcfnm
Код: plaintext
w str? 1 .4E1"-"2E
А почему?...
...
Рейтинг: 0 / 0
regular variables
    #34856028
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaF yf ltkt ghb[jlbncz gbcfnm
Читать как
"А на деле приходится писать"...
...
Рейтинг: 0 / 0
regular variables
    #34856126
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Классные вы типы, от вас помощь есть :) :-)
...
Рейтинг: 0 / 0
regular variables
    #34856133
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
З,Ы как смайлы кроме ставить?
...
Рейтинг: 0 / 0
regular variables
    #34856214
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bednii_StudentЗ,Ы как смайлы кроме ставить?
Мне как-то давали ответ в разделе "Вопрос-Ответ"... Я в файлик записал, могу послать (е-мейл, аська)...
...
Рейтинг: 0 / 0
regular variables
    #34856231
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bednii_StudentКлассные вы типы, от вас помощь есть :) :-)
М-программисты настолько суровы, что им становится грустно если некому помочь...
...
Рейтинг: 0 / 0
regular variables
    #34856266
NoGot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa NoGotв вашем варианте заменить E на N и получится то что надо, да? :)
Да. Я просто думал что там будут не только цифры... А вот с этой единицей у меня всегда происходят непонятки
Вроде как в документации описывают
Код: plaintext
Min.Max<код>
Вот я и думаю что это нужно пименять так
Код: plaintext
w str? 1 .4E"-"2E
А на деле приходится писать
Код: plaintext
w str? 1 .4E1"-"2E
А почему?...

Как это почему? В вашем примере три отдельных т.н. patatom'a (в help'e так написано)
1) 1.4E
2) 1"-"
3) 2E


цитирую:


The general format for a pattern match operation is as follows:

operand?pattern

operand - The string whose characters you want to test for a pattern.
pattern - Can be one of the following: A sequence of one or more patatoms; A indirect reference that evaluates to a sequence of one or more patatoms
A patatom can be one of the following:

*
repcount patcharacter
*
repcount stringliteral
*
repcount alternation


Переводить надо? :)
...
Рейтинг: 0 / 0
regular variables
    #34856299
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NoGotВ вашем примере три отдельных т.н. patatom'a (в help'e так написано)
1) 1.4E
2) 1"-"
3) 2E
Вот оно чего. Понятно. Значит единица относится к константе!
NoGotПереводить надо? :)
Надо...
...
Рейтинг: 0 / 0
regular variables
    #34856344
NoGot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вкратце: в общем виде паттерн выглядит так: operand?pattern
где
operand - строка
pattern - может быть одним из: последовательность одного или более patatoms; косвенная ссылка которая вычисляет собственно последовательность .... patatoms
patatom может быть одним из:

скока_раз N
либо
скока_раз "конкретная строчка"
либо
скока_раз (список значений)

По-моему так. Под скока_раз понимать конструкцию вида min.max
...
Рейтинг: 0 / 0
regular variables
    #34856347
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убрать пробелы:
Код: plaintext
1.
2.
 s str=$zstrip(SpStr,"*W") ; все пробелы ($c( 32 ) и $c( 160 )) и табуляции ($c( 9 ))
 s str=$zstrip(SpStr,"<W") ; - * - в начале строки
 s str=$zstrip(SpStr,">W") ; - * - в конце строки
...
Рейтинг: 0 / 0
regular variables
    #34864765
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa Bednii_StudentЗ,Ы как смайлы кроме ставить?
Мне как-то давали ответ в разделе "Вопрос-Ответ"... Я в файлик записал, могу послать (е-мейл, аська)...
Давай сюда тогда: laz-vasya@rambler.ru )
...
Рейтинг: 0 / 0
regular variables
    #34864971
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дал
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
regular variables
    #34870497
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чето тю-тю их :(
...
Рейтинг: 0 / 0
regular variables
    #34870576
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Послал еще раз...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
regular variables
    #34886618
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашлись, спасиба =) С меня шоколадка.
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / regular variables
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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