Предположим, у меня есть строка:
content = "Please visit https://www.google.com...\nOr visit http://my.website.io\nhttp://myfriends.website.com\nOr https://www.myneigborsite.com, http://visit.me.com"
В строке 5 URL-адресов.
Как рассчитать URL-адреса с использованием синтаксиса?
Я пытался используя Regex.scan/2 |> Enum.count/1
или String.split/2 |> Enum.count/1
<- с регулярным выражением, но я всегда получаю неправильный вывод. </p>
Я также пробовал все регулярные выражения http / https, которые я нашел в inte rnet, но все же не могу получите правильный вывод.
Вот тот, который я пробовал.
iex> content
...> |> String.split(~r/^(https?):\/\/[^\s$.?#].[^\s]*$/)
...> |> Enum.count()
...> |> Kernel.-(1)
-1
Еще один с тем же регулярным выражением ..
iex> Regex.scan(~r/^(https?):\/\/[^\s$.?#].[^\s]*$/, content) |> Enum.count()
0
но когда я проверяю, регулярное выражение соответствует некоторым URL-адресам
iex> Regex.match?(~r/^(https?):\/\/[^\s$.?#].[^\s]*$/, "https://www.google.com")
true
iex(48)> Regex.match?(~r/^(https?):\/\/[^\s$.?#].[^\s]*$/, "http://my.website.io")
true
Это соответствует. Я не могу понять, в чем проблема. Пожалуйста, помогите мне.