совпадение регулярного выражения четверг, четверг, четверг, четверг - PullRequest
0 голосов
/ 06 декабря 2018

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

Пн (день)? | Вт (sday)? | Ср (nesday)? | Чт (rsday)? | Пт (день)? | Сб (urday)?| Солнце (день)?

Строки, которые у меня есть, выглядят так:

3 декабря, понедельник, 13:00 Премьера USPHL Sk3-Red

4 декабря, вторник, 20:10 U16 USPHL, Sk3-Red

6 декабря, четверг, 13:00 Премьера USPHL, Sk3-Red

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

ОК, спасибо за помощь.Я закончил с этим регулярным выражением:

(? I) ((mon | вт (s)? | Wed ((((n)? E)? S)?)? | Thu (r))? (s)? | fri | sat (ur)? | sun) (день)?)

Немного сложнее, чем я хотел, но это работает.Мне нужно много комментариев в моем коде; -)

0 голосов
/ 06 декабря 2018

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

with tbl(str) as (
  select '3-Dec Mon 1:00pm Premiere USPHL Sk3-Red' from dual union all
  select '4-Dec Tues 8:10pm U16 USPHL Sk3-Red' from dual union all
  select '6-Dec Thursday 1:00pm Premiere USPHL Sk3-Red' from dual
)
select str
from tbl
where regexp_like(str, ' (mon|tue(s)?|wed(nes)?|Thu(r)?(s)?|fri|sat(ur)?|sun)(day)? ', 'i');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...