【发布时间】:2020-07-07 11:15:02
【问题描述】:
假设我有一个字符串:
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
我也尝试了我在互联网上找到的每个 http/https 正则表达式,但我仍然无法获得正确的输出。
这是我试过的一个。
iex> content
...> |> String.split(~r/^(https?):\/\/[^\s$.?#].[^\s]*$/)
...> |> Enum.count()
...> |> Kernel.-(1)
-1
另一个具有相同正则表达式的..
iex> Regex.scan(~r/^(https?):\/\/[^\s$.?#].[^\s]*$/, content) |> Enum.count()
0
但是当我检查正则表达式是否匹配某些网址时
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
确实匹配。 我不知道有什么问题。请帮帮我。
【问题讨论】: