jdbc:mysql://10.0.151.205:3306
-> 10.0.151.205:3306
感觉用正则会很快,但是不是很懂正则。还有什么特殊的技巧吗?
1
Famio 2017-03-02 14:46:56 +08:00
不懂 py 的来打混下
不知道 py 能不能转成 string 再处理…… |
2
fortunezhang 2017-03-02 14:47:45 +08:00
split(':')
|
3
yohole 2017-03-02 14:48:02 +08:00
如果字符串固定,只是 IP 会不同,那么按照字符串长度截取不失为一种方法
|
4
windfarer 2017-03-02 14:48:14 +08:00
不是很懂正则就学一下啊, 30 分钟入门教程
|
5
izhaohui 2017-03-02 14:49:21 +08:00 via Android
(\d+?\.){3}\d+?\.:\d+?
|
6
izhaohui 2017-03-02 14:49:54 +08:00 via Android
哎呀多了个点
|
7
grimpil 2017-03-02 14:51:25 +08:00 via Android
匹配 ip 的正则表达式,网上太多了,随便搜一下就是答案
|
8
284716337 2017-03-02 14:53:07 +08:00
正则:[\d{1,3}.]+\d{1,3}:\d{4}
|
9
abc950309 2017-03-02 14:53:45 +08:00
re.match(r'^.+\/\/(?P<ip>\d{1,3}(\.\d{1,3}){3}).+$', 'jdbc:mysql://10.0.151.205:3306 -> 10.0.151.205:3306').group('ip')
不能帮助你更多了 :P |
10
langmoe 2017-03-02 14:55:26 +08:00 1
print 'jdbc:mysql://10.0.151.205:3306 -> 10.0.151.205:3306'.split('->')[1].split(':')[0].strip()
|
11
mgna17 2017-03-02 14:59:31 +08:00
'jdbc:mysql://10.0.151.205:3306'.split('/')[-1]
|
12
Adia OP |
14
Adia OP @langmoe 搞定了,感谢。 print '''jdbc:mysql://10.0.151.205:3306'''.split('/')[-1].split(':')[0]
|
15
dant 2017-03-02 16:26:45 +08:00
|
16
ijustdo 2017-03-02 17:04:22 +08:00
我也来个不用正则的 标准库 urlparse
>>> import urlparse >>> a = 'jdbc:mysql://10.0.151.205:3306' >>> urlparse.urlparse(urlparse.urlparse(a).path).hostname '10.0.151.205' |
17
ijustdo 2017-03-02 17:07:35 +08:00 1
这样也可以的 记住 split rsplit lsplit 是一组函数 他第二个参数非常有用的
>>> a.rsplit(':', 1)[0].rsplit('/', 1)[-1] '10.0.151.205' |
18
xzpjerry731 2017-03-03 01:28:54 +08:00
>>> ip_data
'jdbc:mysql://10.0.151.205:3306' >>> rule '.*//(?P<ip>\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}:\\d{1,5})' #端口号有五位数的啊 >>> re.match(rule, ip_data).group('ip') '10.0.151.205:3306 |