2015-03-19 5 views
2

У меня есть это:Regex форматировать URL без пробелов

The Daily News Восточной студент перспективе газета для сообщества университета Восточного Иллинойса в Чарльстоне, штат Иллинойс. Газета была основана в 1915 году http://media. WWW. dennews. ком/СМИ/хранение/paper309/Новости/2005/11/04/Новости/Новостная. Turns.90-1045667. shtml и публикуется в будние дни в течение учебного года и два раза в неделю летом.

Документ завоевал множество государственных и национальных наград, в том числе несколько премий кардиостимулятора. http://search. Atomz. com/search /? sp_a = sp01089f00 & sp_f = iso-8859-1 & sp_q =% 22daily + east + news% 22 Редакционный, производственный и рекламный персонал газеты состоит из студентов из ряда программ степени.

Я хочу удалить пробел из выделенных частей в абзаце.

Ожидаемый выход:

The Daily News Восточной студент перспективе газета для сообщества университета Восточного Иллинойса в Чарльстоне, штат Иллинойс. Газета была основана в 1915 году http://media.www.dennews.com/media/storage/paper309/news/2005/11/04/News/The-News.Turns.90-1045667.shtml и публикуется в будние дни в течение учебного года и два раза в неделю летом.

Документ завоевал множество государственных и национальных наград, в том числе несколько премий кардиостимулятора. http://search.atomz.com/search/?sp_a=sp01089f00&sp_f=iso-8859-1&sp_q=%22daily+eastern+news%22 Редакционный, производственный и рекламный персонал газеты состоит из студентов из ряда программ степени.

Regex Я пробовал:

([(http://(.)\.)|(www\.)])\s 

Заменить

$1 
+0

это сложно сделать с регулярным выражением. Разве что буква после пробела (_in link_) всегда начинается с буквы нижнего регистра? –

+0

Nope. Это может быть цифра, прописная и строчная. – iNikkz

ответ

1

Проверьте следующее regex

поиска:

(?=\. [a-zA-Z1-9\. \-]*?com)\. 

заменить:

. 

Найдет все .[space] следует ком/где нет не-английски буквы между, так как все домены английских букв или цифр, как правило, подходит для вашего случая, но может включать в себя еще несколько символов, чтобы гарантировать, что все доменные имена будут покрыты, если у вас больше текста, и замените .[space] точкой.

Обновление Вышеупомянутое решение работает только для пробелов.com, если вам нужно заменить все события .[space] на полную строку URL-адреса, включая конечный путь, рекомендуется использовать часть «http: //», однако для этого, поскольку lookbehinds имеют нулевой размер, мы будем нужно сделать reverse строки первой

И применить followin regex на оборотной стороне для поиска части,

(?=[a-zA-Z0-9\/ \.\-]+\/\/:ptth) \. 

заменить это .

Затем реверс строку обратно, это может быть легко done in python

+0

Удаляет только пробелы upto (.com). Не со всего URL. – iNikkz

Смежные вопросы