powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как через regex найти все слова по формату E***A**
25 сообщений из 28, страница 1 из 2
как через regex найти все слова по формату E***A**
    #39689477
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как через regex найти все слова по формату E***A**
E - всегда первая
A - может находится на любой позиции
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39689480
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstuПодскажите, как через regex найти все слова по формату E***A**
E - всегда первая
A - может находится на любой позицииВ чём проблема? Ровно 7 букв?
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39689484
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstuсловаБольшой толковый словарь 1. СЛОВО , -а; мн. слова, слов, -ам и (устар.). словеса, словес, -ам; ср.
1. Единица языка, служащая для называния отдельного понятия.
2. только ед. Речь, язык. Культура слова.
...
10. ....
2. СЛОВО , -а; ср. Устарелое название буквы "с".
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39689486
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicx17.mstuПодскажите, как через regex найти все слова по формату E***A**
E - всегда первая
A - может находится на любой позицииВ чём проблема? Ровно 7 букв?Как в чем проблема?
Накидайте решений, а я выберу самое мне нравещяеся
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39689489
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую редко.
Почитал доку минут 10.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
 SELECT str, REGEXP_INSTR(str, '^A[^\s]f[^\s]') regexp_instr1
 FROM (
       select 'AdfgBg 1' str from dual union all
       select 'ABffS2' str from dual union all
       select 'A444BS3' str from dual union all
       select 'ABDRFTW' str from dual
      );
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39689497
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdmПочитал доку минут 10.Увидел фигу.
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39689513
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,

любое
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39689738
MirnyiAtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
REGEXP_LIKE(str, 'E.{0,6}A')
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39689741
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39689880
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MirnyiAtom
Код: plsql
1.
REGEXP_LIKE(str, 'E.{0,6}A')

Не позорься своим невежеством.
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39690198
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x17.mstu,

...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39690257
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x17.mstu,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with t as (select 'EFG HDA' val from dual
UNION ALL
select 'EFGHDAWA' val from dual
UNION ALL
select 'EFG1DWA' val from dual
UNION ALL
select 'EFGHDWS' val from dual
UNION ALL
select 'FGHDWEA' val from dual
UNION ALL
select 'EAFG_DW' val from dual)
--если длина не ограничена
select * from t where regexp_like (val,'^E(\w)*?A')
union all
select '----------------' from dual
union all
--если 7 букв ровно
select * from t where regexp_like (val,'(^EA(\w){5}$)|(^E(\w)A(\w){4}$)|(^E(\w){2}A(\w){3}$)|(^E(\w){3}A(\w){2}$)|(^E(\w){4}A(\w)$)|(^E(\w){5}A$)')
--Если нужны искать только буквы вместо \w используй [:alpha:]
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39690287
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feagor
Код: plsql
1.
2.
--если 7 букв ровно
select * from t where regexp_like (val,'(^EA(\w){5}$)|(^E(\w)A(\w){4}$)|(^E(\w){2}A(\w){3}$)|(^E(\w){3}A(\w){2}$)|(^E(\w){4}A(\w)$)|(^E(\w){5}A$)')[:alpha:]

Ой-ё, шире вселенной горе мое.
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39690455
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feagor,

Ну что ты уперся в реализацию одним условием?

Код: plsql
1.
WHERE LENGTH(REGEXP_SUBSTR('(^|\W)(E\w*A\w*)',1,1,null,2)) = 7 -- \W заменить на \s по обстоятельствам



Ну и потом "найти все слова" предполагают размножение строки.

SY.
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39690510
IMNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstuПодскажите, как через regex найти все слова по формату E***A**
E - всегда первая
A - может находится на любой позиции

Что-то я не понял, почему Вы все такие страшные регулярки приводите?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH 
  TMain AS (SELECT 'E123A121' str FROM DUAL UNION ALL
            SELECT 'E1A123'   str FROM DUAL UNION ALL
            SELECT 'EA123'    str FROM DUAL UNION ALL
            SELECT 'EA'       str FROM DUAL UNION ALL
            SELECT '12EA'     str FROM DUAL)
SELECT *
FROM TMain
WHERE regexp_like(str, '^E.*A.*$')
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39690709
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сначала надо бы сабстрингом чекнуть, он побыстрее регекспа
Код: plsql
1.
2.
CASE WHEN substr(col, 0, 1) = 'E' THEN
    CASE WHEN regexp_like(...) THEN ...
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39690729
celestial
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x17.mstu,

авторПодскажите, как через regex найти все слова по формату E***A**
E - всегда первая
A - может находится на любой позиции

Это перловка, переделайте в формат sql
я еще не дошел до этой темы. только начал изучать plsql, но вроде как то так,
автор^E[^AE]+?A[^AE]+
если в SQL есть библиотека PCRE перлосовместимые регэкспы.

авторecho -e "ElkimatAlki\nEA\nEmAe\nAE\nae\natestE\nAtestEsitis\nEsitisAAe" | perl -ne 'print if /^E[^AE]+?A[^AE]+/'
ElkimatAlki
EmAe
EsitisAe
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39690738
celestial
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IMNO,

авторregexp_like(str, '^E.*A.*$')
в Вашем случае найдутся и такие слова
EEEAAA
EabcEdxzEAAA
EzzzAAzEA
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39690739
merch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
celestial, не скажу, что листал внимательно, но ничего про количество вхождений не вижу.

Вдруг в
x17.mstu E***A**


под звездочками скрываются тоже E и A...
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39690743
celestial
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
merch,

авторне скажу, что листал внимательно, но ничего про количество вхождений не вижу.

согласен. задача немного размытая
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39690885
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
celestialавторregexp_like(str, '^E.*A.*$')
в Вашем случае найдутся и такие слова У него вообще понятие слова теряется.
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39690886
IMNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
celestialIMNO,

авторregexp_like(str, '^E.*A.*$')
в Вашем случае найдутся и такие слова
EEEAAA
EabcEdxzEAAA
EzzzAAzEA

Что я делаю не так?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
SQL> WITH
  2    TMain AS (SELECT 'E123A121'     str FROM DUAL UNION ALL
  3              SELECT 'E1A123'       str FROM DUAL UNION ALL
  4              SELECT 'EA123'        str FROM DUAL UNION ALL
  5              SELECT 'EA'           str FROM DUAL UNION ALL
  6              SELECT 'EEEAAA'       str FROM DUAL UNION ALL
  7              SELECT 'EabcEdxzEAAA' str FROM DUAL UNION ALL
  8              SELECT 'EzzzAAzEA'    str FROM DUAL UNION ALL
  9              SELECT '12EA'         str FROM DUAL)
 10  SELECT *
 11  FROM TMain
 12  WHERE regexp_like(str, '^E.*A.*$');

STR
------------
E123A121
E1A123
EA123
EA
EEEAAA
EabcEdxzEAAA
EzzzAAzEA

7 rows selected.

SQL>
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39691002
celestial
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IMNO,

подтверждаете мои слова :)
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39691011
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNOЧто я делаю не так?
как будет "слово" во множественном числе ?
...
Рейтинг: 0 / 0
как через regex найти все слова по формату E***A**
    #39691059
IMNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
celestialIMNO,

подтверждаете мои слова :)

Ой. Прощу прощения. Я прочитал как "в Вашем случае НЕ найдутся и такие слова"

Как уже писал merch, у автора темы не написано, что под звёздочками НЕ могут скрываться символы "E" и "A".



123ййIMNOЧто я делаю не так?
как будет "слово" во множественном числе ?
Что-то я не понимаю. В чём претензия?


AmKadУ него вообще понятие слова теряется.
Как я понимаю задачу автора темы.
Есть один столбец со словами. И например 100 строк.
Нужно выбрать те строки, которые соответствуют шаблону E***A**.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как через regex найти все слова по формату E***A**
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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