找回密码  加入

AUTOIT CN

搜索
查看: 780|回复: 32

[AU3基础] 正则获取网址主域名的方法

[复制链接]
发表于 2018-8-16 18:15:47 | 显示全部楼层 |阅读模式
### 友情提示:本脚本由 Au3.REHelper 于 2018/08/16 18:13 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $sSource = 'https://www.baidu.com/123123213?xx=123'
;~MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, '(?i)(f|https?:\/\/).*\.([^/.]*)(\.[^/.]*)\/?.*', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中[0]元素为: ' & $aSRE[0])
_ArrayDisplay($aSRE, UBound($aSRE))

基本上大多数可以匹配,但是
https://www.baidu.com.cn/123123213?xx=123
这样子就匹配不了了
发表于 2018-8-16 18:48:11 | 显示全部楼层
#Include <WinHttp.au3>
_WinHttpCrackUrl  这个应该是你要的不
发表于 2018-8-16 19:49:14 | 显示全部楼层
#include <WinAPIShPath.au3>
Local $sUrl = 'https://www.baidu.com.cn/123123213?xx=123'
Local $sHost = _WinAPI_UrlGetPart ( $sUrl, $URL_PART_HOSTNAME )
MsgBox(0,0,$sHost)


发表于 2018-8-16 19:52:32 | 显示全部楼层
正则,可能不全面
Local $sUrl = 'https://www.baidu.com.cn/123123213?xx=123'
Local $sHost_Reg = StringRegExp($sUrl,'(?i)https?://([^\s/]+)',1)
If Not @error Then MsgBox(0,0,$sHost_Reg[0])


 楼主| 发表于 2018-8-16 21:20:44 | 显示全部楼层
本帖最后由 heavenm 于 2018-8-16 21:30 编辑
绿色风 发表于 2018-8-16 18:48
#Include
_WinHttpCrackUrl  这个应该是你要的不

这个试过了,貌似不好用,比较难识别出主域名,我只想要  XXX.COM,不想要前面的前缀
 楼主| 发表于 2018-8-16 21:22:56 | 显示全部楼层

我不想要识别出前面的
www.baidu.com.cn
只要
baidu.com.cn
而且根据不同情况,说不准还需要前面的协议 http://
所以拆分的方法最好
 楼主| 发表于 2018-8-16 21:27:31 | 显示全部楼层
修正一下,匹配这种情况https://baidu.com/123123213?xx=123
依然没有解决.com.cn的问题
(?i)(f|https?:\/\/)(?:\w*\.)?([^/.]*)(\.[^/.]*)\/?.*
### 友情提示:本脚本由 Au3.REHelper 于 2018/08/16 21:26 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $sSource = 'https://baidu.com.cn/123123213?xx=123'
;~MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, '(?i)(f|https?:\/\/)(?:\w*\.)?([^/.]*)(\.[^/.]*)\/?.*', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中[0]元素为: ' & $aSRE[0])
_ArrayDisplay($aSRE, UBound($aSRE))
 楼主| 发表于 2018-8-16 21:28:39 | 显示全部楼层
本帖最后由 heavenm 于 2018-8-16 21:31 编辑

.com.cn 这种域名估计只能通过匹配所有的域名后缀来解决吧!好像看他们都是那样子解决的否则应该是无解的!
发表于 2018-8-16 22:24:24 | 显示全部楼层
(?im)https?://(?:www\.)?([^/s/]+)
 楼主| 发表于 2018-8-16 22:36:37 | 显示全部楼层
全球所有的域名后缀
.cn
.com
.edu
.gov
.int
.mil
.net
.org
.biz
.info
.pro
.name
.museum
.coop
.aero
.xxx
.idv
.al
.dz
.af
.ar
.ae
.aw
.om
.az
.eg
.et
.ie
.ee
.ad
.ao
.ai
.ag
.at
.au
.mo
.bb
.pg
.bs
.pk
.py
.ps
.bh
.pa
.br
.by
.bm
.bg
.mp
.bj
.be
.is
.pr
.ba
.pl
.bo
.bz
.bw
.bt
.bf
.bi
.bv
.kp
.gq
.dk
.de
.tl
.tp
.tg
.dm
.do
.ru
.ec
.er
.fr
.fo
.pf
.gf
.tf
.va
.ph
.fj
.fi
.cv
.fk
.gm
.cg
.cd
.co
.cr
.gg
.gd
.gl
.ge
.cu
.gp
.gu
.gy
.kz
.ht
.kr
.nl
.an
.hm
.hn
.ki
.dj
.kg
.gn
.gw
.ca
.gh
.ga
.kh
.cz
.zw
.cm
.qa
.ky
.km
.ci
.kw
.cc
.hr
.ke
.ck
.lv
.ls
.la
.lb
.lt
.lr
.ly
.li
.re
.lu
.rw
.ro
.mg
.im
.mv
.mt
.mw
.my
.ml
.mk
.mh
.mq
.yt
.mu
.mr
.us
.um
.as
.vi
.mn
.ms
.bd
.pe
.fm
.mm
.md
.ma
.mc
.mz
.mx
.nr
.np
.ni
.ne
.ng
.nu
.no
.nf
.na
.za
.aq
.gs
.eu
.pw
.pn
.pt
.jp
.se
.ch
.sv
.ws
.yu
.sl
.sn
.cy
.sc
.sa
.cx
.st
.sh
.kn
.lc
.sm
.pm
.vc
.lk
.sk
.si
.sj
.sz
.sd
.sr
.sb
.so
.tj
.tw
.th
.tz
.to
.tc
.tt
.tn
.tv
.tr
.tm
.tk
.wf
.vu
.gt
.ve
.bn
.ug
.ua
.uy
.uz
.es
.eh
.gr
.hk
.sg
.nc
.nz
.hu
.sy
.jm
.am
.ac
.ye
.iq
.ir
.il
.it
.in
.id
.uk
.vg
.io
.jo
.vn
.zm
.je
.td
.gi
.cl
.cf
.yr
.ac.cn
.ah.cn
.bj.cn
.com.cn
.cq.cn
.fj.cn
.gd.cn
.gov.cn
.gs.cn
.gx.cn
.gz.cn
.ha.cn
.hb.cn
.he.cn
.hi.cn
.hk.cn
.hl.cn
.hn.cn
.jl.cn
.js.cn
.jx.cn
.ln.cn
.mo.cn
.net.cn
.nm.cn
.nx.cn
.org.cn

我发现只有中国的,有2个点的后缀,其他地方都没有嘛!
发表于 2018-8-16 22:47:36 | 显示全部楼层
(?i)(f|https?://)(?:www\.)?([\w.]+(?:\.cn)?)/?

点评

https://baidu.com/ 这样子的匹配不到!~  发表于 2018-8-16 23:49
 楼主| 发表于 2018-8-16 23:37:27 | 显示全部楼层
本帖最后由 heavenm 于 2018-8-16 23:46 编辑
(?:\.\w+(?:.cn)?$)|(\.\w+(?:.cn)?)(?:/)
完美匹配后缀,但是组合起来就有问题!!~
 楼主| 发表于 2018-8-16 23:38:30 | 显示全部楼层
本帖最后由 heavenm 于 2018-8-16 23:47 编辑

我X我以为解决了,还是问题,难受香菇
发表于 2018-8-17 00:12:13 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x

点评

A版也是个夜猫子啊!  发表于 2018-8-17 00:48
 楼主| 发表于 2018-8-17 00:47:32 | 显示全部楼层
本帖最后由 heavenm 于 2018-8-17 00:49 编辑

噢!我知道原因了,我修改了一下,把www替换成\w就不行了
(?i)(f|https?://)(?:\w*\.)?([\w.]+(?:\.cn)?)/?

因为有可能存在
https://XXX.baidu.com
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备15028933号-3 )谷歌 百度

GMT+8, 2018-12-17 02:43 , Processed in 0.102749 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表