如何在正则表达式的字符串之间进行操作?结果字符串不应包含起始单词和结束单词?我搜索谷歌,没有答案。
原始字符串: http://xxx.168.x.xxx/delete/568b96fb75b2
预期字符串:
xxx.168.x.xxx
我的正则表达式是:
//[\s\S]*(?=/d) result: //xxx.168.x.xxx
/[\s\S]*(?=/d) result: //xxx.168.x.xxx
有什么建议吗?感谢。
答案 0 :(得分:0)
如果您始终希望从此表单中的网址中提取IP地址,则可以使用以下内容:
[^/]*(?=/delete)
它的优点是它不依赖于lookbehind或捕获组。
答案 1 :(得分:0)
试试这个://(.*?\.168\..*?\..*?)/
以Python为例:
>>> p=re.compile('//(.*?\.168\..*?\..*?)/')
>>> s='http://xxx.168.x.xxx/delete/568b96fb75b2'
>>> p.findall(s)
['xxx.168.x.xxx']
>>> p2=re.compile('//[\s\S]*(?=/d)')
>>> p2.findall(s)
['//xxx.168.x.xxx']
>>> p3=re.compile('[^/]*(?=/delete)')
>>> p3.findall(s)
['xxx.168.x.xxx', '']
由于您可能正在检测IP地址,因此可能会更好://([0-9]*?\.168\.[0-9]*?\.[0-9]*?)/
在Python中:
>>> s1='http://192.168.1.1/delete/fjdsafdasfdsa'
>>> p4=re.compile('//([0-9]*?\.168\.[0-9]*?\.[0-9]*?)/')
>>> p4.findall(s1)
['192.168.1.1']