• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Проблемы с Regexp

  • Автор темы ispanets
  • Дата начала
I

ispanets

Доброго!
Есть приложение, крутится на 8.5FP1/Win32.
В нем есть код вида, использующий MS компоненты:
Set Me.RegExpObject = CreateObject("VBScript.RegExp") и т.д.
Соответственно работает только на Win32. Какую альтернативу можно рассматривать для использования на UNIX-платформе
Спасибо
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Какую альтернативу можно рассматривать для использования на UNIX-платформе
альтернативу чего?
вы отчетность строите или что?
какой функционал необходим?
вопрос из разряда, "нашел колеса от белаза, хочу прикрутить - куда посоветуете"
 
I

ispanets

Причем тут ваши колеса?
Как пример использования регулярных выражений - проверка правильности электронного адреса, имени файла, поиска номера документа при нумерации.
Вопрос - что можно использовать в Lotus на *NIX платформе вместо VBS для регулярных выражений и есть ли такой опыт
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
проверка правильности электронного адреса, имени файла, поиска номера документа при нумерации
это всё можно сделать внутри лотуса не используя ничего стороннего
к чему это?
 
A

Akupaka

поковыряй java
в лотусскрипте я не помню регулярных выражений, по-моему не поддерживает.
если надо будет использовать это со скриптом, то, скорее всего, через мост лс-ява можно связать ява-библиотеку с классом оберткой...
есть пользователь lmike, у него спроси, еще есть TIA, но я не помню от него ява изысков (уж простите, если пропустил)
 
I

ispanets

это всё можно сделать внутри лотуса не используя ничего стороннего
к чему это?

Ок. Тогда скажите пожалуйста, каким образом на LS можно проверить соответствие электронного адреса по такому выражению:
^([_\.\d\w-]+)@([\d\w][_\.\d\w-]+).(\w{2,4})$


поковыряй java
в лотусскрипте я не помню регулярных выражений, по-моему не поддерживает.
если надо будет использовать это со скриптом, то, скорее всего, через мост лс-ява можно связать ява-библиотеку с классом оберткой...
есть пользователь lmike, у него спроси, еще есть TIA, но я не помню от него ява изысков (уж простите, если пропустил)
спасибо. эх, я к сожалению с явой не дружу
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
^([_\.\d\w-]+)@([\d\w][_\.\d\w-]+).(\w{2,4})$
уточняю чтобы не упустить что-то
наличие собаки, после неё точки, и наличие доменной зоны 2-4 символа, это всё? ;)

я уж подумал сделать проверку и послать запрос SMTP на проверку реально ли существует мыло :wacko:
 
I

ispanets

уточняю чтобы не упустить что-то
наличие собаки, после неё точки, и наличие доменной зоны 2-4 символа, это всё? ;)

я уж подумал сделать проверку и послать запрос SMTP на проверку реально ли существует мыло :wacko:
в целом да. Но таких выражений достаточно много
проверка имени файла например:
^([-\d\w_ А-Яа-я]+)\.\S+$
 
A

Akupaka

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

вот посмотри тут

ищи там LS2J Examples Database
написано, что там есть "An agent that allows you to use regular expressions in LotusScript. I wasn't intending to teach you how to use regular expressions if you've never used them before, so I kept the examples reasonably simple."
 
I

ispanets

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

вот посмотри тут

ищи там LS2J Examples Database
написано, что там есть "An agent that allows you to use regular expressions in LotusScript. I wasn't intending to teach you how to use regular expressions if you've never used them before, so I kept the examples reasonably simple."

Спасибо за ссылку
Как я понимаю, реализовать точно можно на JS/XPages
 
A

Akupaka

про икспэйджис я ничего не знаю...
 
O

Omh

Ну как (жалкое?) подобие RegExp можно попробовать заюзать оператор Like.
Во всяком случае, приведённые выше задачи он покрыть может.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
в JS есть регэкспы свои
в java - апачевская библа jakarta oro (на нсфтул, юзают именно её)
на никсах - воще мона вызывать скирипт с параметрами и забирать резалт из файла/порта/сокета

для универсальности java лучше всего

причем, в версии 1.4 (а именно она с 7-ки) есть пакедж:

на нсфтул писали "давно" и тогда был единственный способ
 
A

Akupaka

офф: к стати, автору темы замечание, задача поставлена не совсем корректно, в первом посте.
я вообще для себя RegExp расшифровал как Registry Explorer )))
 
I

ispanets

Спасибо за ответы, буду пробовать на java

Кас. постановки задачи, извиняюсь, где-то был не прав.
P.S. Регуля́рные выраже́ния (англ. regular expressions, сокр. RegExp, RegEx, жарг. регэ́кспы или ре́гексы) — система синтаксического разбора текстовых фрагментов по формализованному шаблону
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
я вообще для себя RegExp расшифровал как Registry Explorer
я кстати тоже :)

в целом да. Но таких выражений достаточно много
проверка имени файла например:
^([-\d\w_ А-Яа-я]+)\.\S+$
полностью реализуемо как средствами лотус-скрипт так и собаками (про яву вообще молчу)
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
^([_\.\d\w-]+)@([\d\w][_\.\d\w-]+).(\w{2,4})$
Можете привести пример на LS?
нужно написать функцию проверки, возвращающую True/False
Function IsEmail(s1 as string) as bolean
IsEmail = false
if instr(s1, "@")=0 then exit function
if instr(s1, ".")=0 then exit function
if len(strleft(s1, "@"))=0 exit function
if len(strright(s1, "@"))=0 exit function
if len(strright(strright(s1, "@"), ".")=0 exit function
'' куча подобных проверок, писал на вскидку, где-то подобное было но влом искать....

IsEmail = true
end function
 
I

ispanets

^([_\.\d\w-]+)@([\d\w][_\.\d\w-]+).(\w{2,4})$

нужно написать функцию проверки, возвращающую True/False
Function IsEmail(s1 as string) as bolean
IsEmail = false
if instr(s1, "@")=0 then exit function
if instr(s1, ".")=0 then exit function
if len(strleft(s1, "@"))=0 exit function
if len(strright(s1, "@"))=0 exit function
if len(strright(strright(s1, "@"), ".")=0 exit function
'' куча подобных проверок, писал на вскидку, где-то подобное было но влом искать....

IsEmail = true
end function

спасибо
самое обидное, что если рассматривать случай когда пользователь может менять выражение или добавлять новые, решение реально выходит за рамки гибкого, и придется переписывать код раз за разом. Ну или разрастется достаточно сильно. Т.е. это не одна строчка вида RegExp("expression", "flags")
 
O

Omh

ToxaRat
Чёт ты погорячился
Хватит и
Код:
isEmail = CheckEMail Like "*@*.*"
Если надо доп проверки, но тожно так:
Код:
isEmail = CheckEMail Like "[A-Z,a-z,0-9,_]@[A-Z,a-z,0-9,_].[A-Z,a-z]"
Ну можно ещё остальные разрешённые символы перечислить (не помню все из башки)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!