Вы можете использовать следующее регулярное выражение:
(https?.*?\.com\/)(\s+[\w-]*\s+)(https?.*?\.com\/[\w\.]+)
(https?.*?\.com\/)
Первая группа захвата. Захват http
или https
, все до .com
и косой черты /
. (\s+[\w-]*\s+)
Вторая группа захвата. Захват пробелов, буквенно-цифровых символов и подстановок, а также пробелов. Вы можете добавить больше символов в набор символов, если это необходимо. (https?.*?\.com\/[\w\.]+)
Третья группа захвата. Захватите http
или https
, все до .com
, косую черту /
, буквенно-цифровые символы и полную остановку .
для расширения. Снова вы можете добавить больше символов в набор символов в этой группе захвата, если вы ожидаете других символов. Вы можете протестировать регулярное выражение здесь .
В качестве альтернативы, если вы ожидаете переменные URL-адреса и домены, которые вы можете использовать:
(\w*\:.*?\.\w*\/)(\s+[\w-]*\s+)(\w*\:?.*?\.\w*\/[\w\.]+)
Где первая и третья группы захвата теперь соответствуют любым буквенно-цифровым символам, за которыми следует двоеточие :
и все до .
, буквенно-цифровые символы \w
и косую черту. Вы можете проверить это здесь .
Вы можете заменить захваченные группы:
\1\2
Где \1
, \2
и \3
являются обратными ссылками на захваченные группы один, два и три соответственно.
Фрагмент питона:
>>import re
>>str = "La-la-la https://example.com/ la-la-la https://example.com/example.PNG"
>>out = re.sub(r'(https?.*?\.com\/)(\s+[\w-]*\s+)(https?.*?\.com\/[\w\.]+)',
r'\1\2',
str)
>>print(out)
La-la-la https://example.com/ la-la-la
Вы хотите изменить данные. Одним из методов является условная агрегация. Для этой цели я бы порекомендовал:
select name,
group_concat(case when comm_rid = 5 then comm_value end) as what_5_means,
group_concat(case when comm_rid = 6 then comm_value end) as radio,
group_concat(case when comm_rid = 7 then comm_value end) as whateve_7_means
from . . .
group by name;
Я не знаю, из какого вопроса использовать пункт from
.
При этом используется group_concat()
, а не max()
на тот случай, если у кого-то есть несколько средств связи одного типа.