我写了一个相当庞大的正则表达式以在coffee-script
项目中使用。它旨在获取大量用户文本(消息、帖子、散文)并在其中找到所有潜在的 URL,尽可能贪婪。
urlGrabber = ///
(\s|^) # Start after a whitespace or string[0]
([a-zA-Z]+\://)? # Captures any protocol (just not //)
(\w+:\w+@)? # Username:Password
([a-zA-Z\d-]|[a-zA-Z\d-]\.)* # Subdomains
[a-zA-Z\d-]{2,} # Domain name
\. # THE DOT
([a-zA-Z]{2,4}(:\d+)?) # Domain Extension with Port
([/\?\#][\S/]*)* # Some Request, greedy capture
\b # Last word boundary
/? # Optional trailing Slash
///g
我遇到了字符串问题,例如abc.mno.st.u.xvy
whereabs.mno.st
被解析为字符串。这根本不应该被捕获。被捕获的as.ds.d.
地方也是如此。as.ds
谁能解释为什么会发生这种情况和/或帮助解决该问题所需的更改?