我正在尝试解析HTML以查找帖子中的网址。实际上大部分时间都有效,但在一种情况下它不会解析。我需要解析帖子中的所有链接。链接格式如下: -
google.com
google.com/q=love
google.com/in-love/1212/a
www.google.com/in-love/1212/a
www.google.com/q=love
www.google.com
http://www.google.com/in-love/1212/a
http://google.com
http://www.google.com
http://google.com/q=love
https://www.google.com/in-love/1212/a
https://google.com
https://www.google.com
https://google.com/q=love
但在某些情况下我的正则表达式也解析了这些: -
tanmoy.kundu
i.e
我正在使用此正则表达式来解析HTML帖子:
/\(?(?:(http|https|ftp):\/\/)?(?:((?:[^\W\s]|\.|-|[:]{1})+)@{1})?((?:www.)?(?:[^\W\s]|\.|-)+[\.][^\## Heading ##W\s]{2,4}|localhost(?=\/)|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::(\d*))?([\/]?[^\s\?]*[\/]{1})*(?:\/?([^\s\n\?\[\]\{\}\#]*(?:(?=\.)){1}|[^\s\n\?\[\]\{\}\.\#]*)?([\.]{1}[^\s\?\#]*)?)?(?:\?{1}([^\s\n\#\[\]]*))?([\#][^\s\n]*)?\)?/g
我需要一个有效的域检查解析。与.com
,.uk
等
答案 0 :(得分:1)
此Regx对我的案例很有帮助
/(((?:ht|f)tp[s]?:[\/]{2})?(?:\w+(?::\w+)?@)?(?:(?:(?:\d{1,3}\.){3}\d{1,3})|(?:(?:\w|\d|\.|\$|_|@|\+|\-)*(?:\w|\d|\$|_|@|\+|\-)\.(?:aero|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw))(?!\w))(?::\d{1,5})?(?:\/+(?:\w|\d|\.|\=|\$|_|@|\+|\-|~)*(?:\w|\d|\$|_|@|\+|\-|~))*\/*(?:\?(?:\w|\d|\.|\$|_|@|\+|\-|&|=)*)?)/g
谢谢: - )
答案 1 :(得分:0)
存在正则表达式以进行检查以使用相同规则启用尽可能多的案例。
现在,在对URL进行一次验证的情况下,使用一个REGEX检查所有网址非常困难,因为新gTLD(所有GTLD列表和“旧”扩展名在此处=> https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains)是更长的时间,许多网站都有子域......等等......
对我来说,最好的正则表达式模式应该测试扩展名(知道URL是否真的存在......或者不知道)我知道这个网站=> https://mathiasbynens.be/demo/url-regex用于获取检查的特定URL的许多REGEX PATTERN。
在你的情况下,
i.e
tanmoy.kundu
如果正则表达式检查了你的扩展名是否有效,('e'和'kundu'不是有效的例子)你的正则表达式有效:p
而且,不要忘记你可以用http://www.regexpal.com ^ _ ^来测试你的正则表达式。这很容易。