powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / regular variables
25 сообщений из 32, страница 1 из 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
25 сообщений из 32, страница 1 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / regular variables
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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