Как поймать URL-адреса пользователя в тексте - PullRequest
1 голос
/ 28 января 2011

Я хотел бы получить URL, указанные пользователем в его / ее тексте (я предполагаю, что URL должен начинаться с http://). Это первая попытка:

Pattern pattern = Pattern.compile("http://[^ ]+");

, но если пользователь вводит что-то вродеэто:

"look at somepage (http://somepage.net)"
"look at http://somepage1.net, http://somepage2.net and sth else"
"Please visit our page http://somepage.net."

URL был с неправильным (?) символом в конце. Как избежать этого?

Ответы [ 2 ]

0 голосов
/ 28 января 2011

Ответ заключается в том, что вы не можете сделать это со 100% точностью.

URL-адрес, такой как "http://somepage1.net,", технически допустим, и нет способа точно определить, является ли "," частьюURL или просто пунктуация.

URL, такой как "http://somepage1.net or something", технически недопустим, но типичные конечные пользователи не знают этого.(Они используются для браузеров, которые делают всевозможные шутки по отношению к тому, что они печатают в своем браузере.)

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

Вы также можете рассматривать соответствующие кавычки или левые / правые скобки как обозначающие URLграницы;например,

    The secret URL is "http://example.com/?" ... don't leave off the "?"
0 голосов
/ 28 января 2011

Может вычислить, что URL не может заканчиваться на [,.)] И т. Д., Заканчиваться только [A-Za-z] или /, но это прервало конкретный конец URL, такой как http://site.com/read.php?key=F#$.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...