Tôi có df này:nhân vật Tính của một phần của một chuỗi
dput(df)
structure(list(URLs = c("http://bursesvp.ro//portal/user/_/Banco_Votorantim_Cartoes/0-7f2f5cb67f1-22918b.html",
"http://46.165.216.78/.CartoesVotorantim/Usuarios/Cadastro/BV6102891782/",
"http://www.chalcedonyhotel.com/images/promoc/premiado.tam.fidelidade/",
"http://bmbt.ro/portal/a3/_Votorantim_/VotorantimCartoes2016/0-7f2f5cb67f1-22928b.html",
"http://voeazul.nl/azul/")), .Names = "URLs", row.names = c(NA,
-5L), class = "data.frame")
Nó mô tả các URL khác nhau và tôi đang cố gắng để đếm số ký tự của tên chủ, cho dù đó là một tên thực tế (http://hostname.com/....) Hoặc IP (http://000.000.000.000/...). Tuy nhiên, nếu nó là một tên thực tế, sau đó tôi chỉ muốn nchar giữa www. và .com. Nếu đó là một IP thì tất cả các số của nó và "ở giữa" dấu chấm.
kết quả mong đợi cho dữ liệu mẫu trên:
exp_outcome
1 8
2 13
3 15
4 4
5 7
tôi cố gắng làm điều gì đó với strsplit
nhưng không thể có được bất cứ nơi nào.
Điều này thật tuyệt vời và tôi thích giải pháp của riêng mình - nhưng tôi phải hỏi: tại sao viết '[/] {2}' thay vì '/ {2}' hoặc thậm chí '//' và tại sao viết 'w {3}' thay vì 'www'? Nó dài hơn và ít dễ đọc hơn. Ngoài ra, thay vì '(www) *' bạn nên sử dụng '(www)? 'Bởi vì chúng tôi muốn" số không hoặc một ", không phải" số không hoặc nhiều hơn "(và tương tự sau). Và một điều cuối cùng: tên miền có thể chứa nhiều hơn chỉ là chữ cái, chúng cũng có thể chứa chữ số và dấu gạch ngang và nhiều thứ khác. Vì vậy, một lớp nhân vật sẽ không cắt nó, bạn có thể phải chấp nhận bất cứ điều gì ngoại trừ '.' và'/'ở đây. –
@KonradRudolph cảm ơn, [/] đó là tránh phải trốn thoát/và [//] sẽ không hoạt động. w {3} nó chỉ vì tôi không muốn lặp lại www (lựa chọn cá nhân ...). Cảm ơn vì nhận xét về "?", Nó thực sự sẽ phù hợp hơn. Tôi không quen? ngoài những cách nhìn khác. – Cath
Trên thực tế, [Wikipedia nói] (https://en.wikipedia.org/wiki/Domain_name) chỉ có các ký tự và số được phép trong tên miền và dấu gạch ngang khi được bao quanh bởi tên cũ (vì vậy điều này đơn giản hóa một sửa chữa cho mối quan tâm của tôi đã lưu ý ở trên). Và không cần phải trốn thoát '/'. Chỉ '\\' cần phải được thoát. –