我的Twitter URL可能采用以下格式:
urls = [
"https://twitter.com/TwitterDev/status/850006245121695744",
"http://twitter.com/TwitterDev/status/850006245121695744",
"twitter.com/TwitterDev/status/850006245121695744",
"https://www.twitter.com/TwitterDev/status/850006245121695744",
"http://www.twitter.com/TwitterDev/status/850006245121695744",
"www.twitter.com/TwitterDev/status/850006245121695744",
"m.twitter.com/TwitterDev/status/850006245121695744",
]
我想从以上任何一种获取用户名"TwitterDev"
。如何获得".com/"
之后到下一个"/"
之后的单词/数字/字符[sic]?
答案 0 :(得分:0)
我无法编写ruby,但这是我从regex101.com网站上自动生成的代码,其中使用{strong>后置和向后看方法。它只是抓取前面(?<=\.com\/)([a-zA-Z0-9]+)(?=\/)
和后面.com/
的字符串部分。
/
已编辑:使用re = /(?<=\.com\/)([a-zA-Z0-9]+)(?=\/)/m
str = '-https://twitter.com/TwitterDev/status/850006245121695744
-http://twitter.com/TwitterDev/status/850006245121695744
-twitter.com/TwitterDev/status/850006245121695744
-https://www.twitter.com/TwitterDev/status/850006245121695744
-http://www.twitter.com/TwitterDev/status/850006245121695744
-www.twitter.com/TwitterDev/status/850006245121695744
-m.twitter.com/TwitterDev/status/850006245121695744 '
# Print the match result
str.scan(re) do |match|
puts match.to_s
end
答案 1 :(得分:0)
遵循您提到的确切规范。
urls.map{|url| url.split(".com/", 2).last.split("/", 2).first}
# => ["TwitterDev", "TwitterDev", "TwitterDev", "TwitterDev", "TwitterDev", "TwitterDev", "TwitterDev"]