Что нового

Получение относительного пути у ссылки

mir546

Новичок
Сообщения
27
Репутация
0
Как их объединить?
Помогите, пожалуйста
Код:
(\bhttp:\/\/vk.com\/\b)  (\?.*)
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Re: Объединение двух частей регулярного выражения

Не знаю как другие, я вопроса не понял.
Можно узнать, какая строка на входе? И что должно получиться на выходе?
 
Автор
M

mir546

Новичок
Сообщения
27
Репутация
0
Re: Объединение двух частей регулярного выражения

edyapd сказал(а):
Не знаю как другие, я вопроса не понял.
Можно узнать, какая строка на входе? И что должно получиться на выходе?

ссылка динамичная. что-то в стиле http://vk.com/fawfwfawfs?qe=t31g4g2gv2d1
а бывает прсто http://vk.com/fawfwfawfs

на выходе только это fawfwfawfs
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Объединение двух частей регулярного выражения

mir546,
Код:
Local $asStr[4] = ['http://vk.com/fawfwfawfs?qe=t31g4g2gv2d1', 'http://vk.com/fawfwfawfs=', 'http://vk.com/abcdefjh1234567890#qe=t31g4g2gv2d1', _
		'http://vk.com/abcdefjh1234567890=12345']

For $i = 0 To UBound($asStr) - 1
	ConsoleWrite(StringRegExpReplace($asStr[$i], '.*vk\.com/([[:alnum:]]+).*', '$1') & @TAB & @extended & @LF)
Next
 
Автор
M

mir546

Новичок
Сообщения
27
Репутация
0
Re: Объединение двух частей регулярного выражения

madmasles сказал(а):
mir546,
Код:
Local $asStr[4] = ['http://vk.com/fawfwfawfs?qe=t31g4g2gv2d1', 'http://vk.com/fawfwfawfs=', 'http://vk.com/abcdefjh1234567890#qe=t31g4g2gv2d1', _
		'http://vk.com/abcdefjh1234567890=12345']

For $i = 0 To UBound($asStr) - 1
	ConsoleWrite(StringRegExpReplace($asStr[$i], '.*vk\.com/([[:alnum:]]+).*', '$1') & @TAB & @extended & @LF)
Next

Идеально! Благодарю!
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: Объединение двух частей регулярного выражения

mir546
[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Автор
M

mir546

Новичок
Сообщения
27
Репутация
0
Re: Объединение двух частей регулярного выражения

madmasles сказал(а):
mir546,
Код:
Local $asStr[4] = ['http://vk.com/fawfwfawfs?qe=t31g4g2gv2d1', 'http://vk.com/fawfwfawfs=', 'http://vk.com/abcdefjh1234567890#qe=t31g4g2gv2d1', _
		'http://vk.com/abcdefjh1234567890=12345']

For $i = 0 To UBound($asStr) - 1
	ConsoleWrite(StringRegExpReplace($asStr[$i], '.*vk\.com/([[:alnum:]]+).*', '$1') & @TAB & @extended & @LF)
Next

А если входная строка в формате http://vk.com/i_big_bang_tamik
Как сделать что бы это регулярное выражение обрабатывало нижний пробел?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Объединение двух частей регулярного выражения

mir546 [?]
Как сделать что бы это регулярное выражение обрабатывало нижний пробел?
Замените [[:alnum:]] на \w

PS
Все это есть в справке.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Объединение двух частей регулярного выражения

mir546,
Предупреждение За нарушение общих правил (пункт В.2):
Старайтесь избегать “Over quoting” (преувеличенное цитирование) - цитируйте только необходимую часть сообщения, которая наилучшим образом подчеркнёт суть цитируемого.


С уважением, ваш Глобальный модератор.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Тему переименовал.

Я бы так сделал:
Код:
$vTest = 'http://vk.com/qwerty?param=1'
$sRet = StringRegExpReplace($vTest, '^[^:]{3,5}://[^/]+(?:/([^\?&=]+).*)?', '$1')
ConsoleWrite($sRet & @LF)
 
Верх